__name__指示模块应该如何被加载:
由于主程序代码无论模块是被导入还是被直接运行都会运行,我们必须知道模块如何决定运行方向。一个应用程序可能需要导入另一个应用程序的一个模块,以便重用一些有用的代码(否则就只能用拷贝粘贴那种非面向对象的笨拙的方法),这种情况的下,你只想访问那些位于其他应用程序中的代码,而不是运行那个应用程序,因此一个问题出现了, “python是否有一个方法,能在运行时检测该模块是被导入还是被直接执行呢?”,答案就是, __name__系统变量就是正确答案;
1、如果模块是被导入,__name__的值为该模块的名字;
2、如果模块是被直接执行,__name__的值为‘
__main__ ’;
python 优秀调试器: pdb
记录器:logging
性能测试器: profile
hotshot cProfile(不是很好)
os模块
ls = os.linesep #os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用‘\r\n‘,Linux使用‘\n‘而Mac使用‘\r‘
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd()函数得到当前工作目录,即当前python脚本工作的目录路径
os.getenv() 和os.putevn()函数分别用来读取和设置环境变量
os.curdir: 返回当前目录( ‘ .
‘ )
s.chdir(dirname):改变工作目录到dirname
os.sep
可以取代操作系统特定的路径分割符。
os.name字符串指示你正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令。
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’
os.makedirs(dirname)创建多级目录,如:os.makedirs(‘/data/cc/ll/xx/zz’)
os.mkdir(path)
创建多级目录
os.rmdir(path) # 删除目录 如:WIN: os.rmdir(‘E:\\book\\temp’) LINUX:
os.rmdir(‘/data/cc’)
文件拷贝还可用shutil
import
shutil
shutil.copyfile(‘listfile.py’, ‘d:/test.py’)
#复制文件
shutil.copystat(src,dst)
#拷贝文件,连同文件的stat一起拷贝
shutil.copytree(src,dst)
#拷贝目录,拷贝之前dst必须不存在
os.path模块
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.abspath(name):获得绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录>是否存在)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
os.path.getsize(name):获得文件大小(字节大小)如果name是目录返回0L
os.path.getctime(path)
返回浮点数的系统时间,在类Unix系统上是文件最近更改的时间, 在Windows上是文件或目录的创建时间
os.path.getmtime(path)
文件或目录最后更改的时间
os.path.getatime(path)
文件或目录最后存取的时间
os.path.samefile(path1,path2)
如果2个路径指向同样的文件或目录,返回True(Windows上不可用)
glob模块
glob.glob(“*.py”)
#返回当前目录下所有以.py为后缀的目录或文件,glob(“*.py”) 里面可用正则去匹配,返回一个LIST列表