操作文件和目录
操作文件和目录的函数一部分防砸OS模块中,一部分在os.path模块中。查看、创建和删除目录可以这么调用:
查看当前目录的绝对路径:
import os
s = os.path.abspath('.')
print(s)
#结果:G:\zrx\demoproject
在某个目录下创建一个新目录,首先把新目录 的完整路径表示出来:
s = os.path.join('G:\zrx\demoproject', 'testdir')
print(s)
#结果:G:\zrx\demoproject\testdir
创建一个目录
os.mkdir('G:\zrx\demoproject\testdir')
删除一个目录
os.rmdir('G:\zrx\demoproject\testdir')
把两个路径合成一对,不要直接拼接字符串,而要通过os.path.join()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名:
p = os.path.split(s)
print(p)
#结果:('G:\\zrx\\demoproject', 'testdir')
os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便:
type = os.path.splitext(s + '/demo1.py')
print(type)
#结果:('G:\\zrx\\demoproject\\testdir/demo1', '.py')
这些合并、拆分路径的函数不要求目录和文件真实存在,它们只对字符串尽心操作
文件使用下面的函数,假定当前目录下有一个test.txt的 文件:
#对文件重命名
os.rename('text.txt', 'test.py')
#删掉文件
os.remove('test.py')
shutil
模块提供了copyfile()
的函数,还可以在shutil
模块中找到 很多实用函数,它们可以看做是OS模块的补充。
最后看看如何利用python的特性来过滤文件。
例:列出当前目录下的所有目录
#说是可以一句话:x for x in os.listdir('.') if os.path.isdir(x) 我却执行不了 改了 下可以了
dir = []
for x in os.listdir('.') :
if