Python 文件目录操作
os和os.path模块
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回但前目录('.')
os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0L
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):返回文件路径
- >>> import os
- >>> os.getcwd()
- 'C:\\Python25'
- >>> os.chdir(r'C:\temp')
- >>> os.getcwd()
- 'C:\\temp'
- >>> os.listdir('.')
- ['temp.txt', 'test.py', 'testdir', 'tt']
- >>> os.listdir(os.curdir)
- ['temp.txt', 'test.py', 'testdir', 'tt']
- >>> os.path.getsize('test.py')
- 38L
- >>> os.path.isdir('tt')
- True
- >>> os.path.getsize('tt')
- 0L
- >>> os.path.abspath('tt')
- 'c:\\temp\\tt'
- >>> os.path.abspath('test.py')
- 'c:\\temp\\test.py'
- >>> os.path.abspath('.')
- 'c:\\temp'
- >>>
- >>> os.path.split(r'.\tt')
- ('.', 'tt')
- >>> os.path.split(r'c:\temp\test.py')
- ('c:\\temp', 'test.py')
- >>> os.path.split(r'c:\temp\test.dpy')
- ('c:\\temp', 'test.dpy'
- >>> os.path.splitext(r'c:\temp\test.py')
- ('c:\\temp\\test', '.py')
- >>> os.path.splitext(r'c:\temp\tst.py')
- ('c:\\temp\\tst', '.py')
- >>>
- >>> os.path.basename(r'c:\temp\tst.py')
- 'tst.py'
- >>> os.path.dirname(r'c:\temp\tst.py')
- 'c:\\temp'
- >>>
os.sep 可以取代操作系统特定的路径分割符。
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令。
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。
os.curdir:返回但前目录('.')可使用abspath来获取绝对路劲
>>>dir = glob.glob('*.dat') #获取当前目录的dat文件列表
.创建目录os.mkdir(path) path:要创建目录的路径。
>>> import os
>>> os.mkdir('E:\\book\\temp') # 使用os.mkdir创建目录
4.删除目录
os.rmdir(path) path:要删除的目录的路径。
>>> import os
>>> os.rmdir('E:\\book\\temp') # 删除目录
需要说明的是,使用os.rmdir删除的目录必须为空目录,否则函数出错。
若想删除非空目录,先删除目录下的文件,然后再删除目录,递归过程。