文件和目录的相关操作
文件和目录的相关操作
1)用open()来创建文件
下面来创建一个oops.txt的文本文件
>>> fout=open('oops.txt','wt')
>>> fout.write('i create a file')
>>> fout.close()
下面用这个文件来做一些测试:
用exists()检查文件是否存在
判断文件或目录是否存在,可使用exists(),传入相对或绝对路经名
>>> import os
>>> os.path.exists('oops.txt')
True
>>> os.path.exists('mimi')
False
用isfile()检查文件是否为文件
检查是否为文件‘
>>> name='oops.txt'
>>> os.path.isfile(name)
True
>>> os.path.isdir(name) 检查是否为目录
False
用copy()复制文件
Copy()函数来自另一个模块,下面的例子把oops.txt复制到ohno.txt
>>> import shutil
>>> shutil.copy('oops.txt','ohno.txt')
Shutil,move()函数会复制一个文件并删除原始文件
用rename()重命名文件
下面的例子把ohno.txt重命名为ohwell.txt文件
>>> import os
>>> os.rename('ohno.txt','ohwell.txt')
用link()或者symlink()来创建链接
下面把文件oops.txt硬链接到一个新文件yikes.txt
>>> os.link('oops.txt','yikes.txt')
>>> os.path.isfile('yikes.txt')
True
用chmod()修改权限
下面如阿个oops.txt文件只能被拥有者读
>>> os.chmod('oops.txt',0o400)
>>>
用chown()来修改所有者
>>> uid=5
>>> gid=22
>>> os.chown('oops.txt',uid,gid)
用abspath()获取路径名
这个函数会把一个相对路径扩展成绝对路径
>>> os.path.abspath('oops.txt')
'/mnt/420/oops.txt'
用realpath()获取符号的路径名
>>> os.path.realpath('yikes.txt')
'/mnt/420/yikes.txt'
用remove()删除文件
>>> os.remove('oops.txt')
>>> os.path.exists('oops.txt')
False
【目录】
使用mkdir()创建目录
>>> os.mkdir('poems')
>>> os.path.exists('poems')
True
使用rmdir()删除目录
>>> os.rmdir('poems')
>>> os.path.exists('poems')
False
使用listdir()列出目录的内容
>>> os.listdir('poems')
[]
>>> os.mkdir('poems/mcintyre')
>>> os.listdir('poems')
['mcintyre']
使用chdir()修改当前目录
可以使用这个函数从一个目录跳转到另外一个目录,
>>> os.chdir('poems')
>>> os.listdir('.')
['mcintyre']
使用glob()列出匹配文件
Glob()函数会使用shell规则来匹配文件或者目录,而不是更复杂的正则表达式。
- 会匹配任意名称(re中是.*)
? 会匹配一个字符
[abc]会匹配字符a,b,c
[!abc]会匹配除了a,b,c
获取以m开头的文件或目录
>>> import glob
>>> glob.glob('m*')
['mcintyre']
获取所有名字为两个字符的文件和目录
>>> glob.glob('??')
[]
获取名称为8个字并且以m开头和以e结尾的文件和目录
>>> glob.glob('m??????e')
['mcintyre']
>>> glob.glob('[klm]*e') #获取所有以k,l,或者m开头并且以e结尾的文件或目录
['mcintyre']