文件和目录的相关操作

文件和目录的相关操作

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']
原文地址:https://www.cnblogs.com/hanfei-1005/p/5704377.html