python对文件及目录的操作

平时我们使用python对文件、文件夹操作一般用到os模块和shutil模块,以下是常用的操作。

os.listdir()
返回指定目录下的所有文件和目录名:
直接使用os.listdir()列出当前目录下的文件和目录
使用os.listdir(‘/usr/local’)列出指定目录’/usr/local’下的文件和目录

os.remove()
删除一个文件
os.remove(‘test’)删除当前目录的文件’test’
os.remove(‘/root/test’)删除文件’/root/test’
当你试图删除一个目录时会报错

os.removedirs()
os.removedirs(‘test’)删除当前目录的目录’test’
os.removedirs(‘/root/test’)删除目录’/root/test’
当你试图删除一个文件时会报错

os.rename
重命名或移动,相当于linux mv命令
os.rename(’01’, ’10’) 将当前目录下的01重命名为10
os.rename(‘/tmp/10’, ‘/root/11’) 将/tmp/10移动到/root/并重命名为11

os.mkdir
创建单个目录
os.mkdir(‘test’)

os.makedirs
创建多级目录
os.makedirs(‘/tmp/z/x/c/v’)

os.path.isfile()
检验给出的路径是否是一个文件
os.path.isfile(‘/a/b/123’)如果存在并且是文件则返回True,否则返回False

os.path.isdir()
检验给出的路径是否是一个目录
os.path.isfile(‘/a/b/123’)如果存在并且是目录则返回True,否则返回False

os.path.isabs()
判断是否是绝对路径
它并不会判断你给的路径是否真实存在只要是以’/’开始就是True
os.path.isabs(‘/asd/asd’)返回True os.path.isabs(‘asd/asd’)返回False

os.path.exists()
检验给出的路径是否真地存
os.path.exists(‘/asd/zxc’)不论他是目录或者文件,只要存在就返回True,否则返回False

os.path.split()
返回一个路径的目录名和文件名
os.path.split(‘/tmp/haha4/zxc/123.txt’) 结果:(‘/tmp/haha4/zxc’, ‘123.txt’)
os.path.split(‘/tmp/haha4/zxc/’) 注意zxc是个目录 结果:(‘/tmp/haha4/zxc’, ”)
os.path.split(‘/tmp/haha4/zxc’) 注意zxc是个目录 结果:(‘/tmp/haha4/zxc’, ‘zxc’)
也就是说他没判断这是不是文件,只是做了分割

os.path.splitext()
分离扩展名
os.path.splitext(‘/root/asd.txt’) 结果:(‘/root/asd’, ‘.txt’)
os.path.splitext(‘asd.txt’) 结果(‘asd’, ‘.txt’)

os.path.dirname()
获取路径名
os.path.dirname(‘/a/b/c/d.txt’) 得到 ‘/a/b/c’

os.path.basename()
获取文件名
os.path.basename(‘/a/b/c/d.txt’) 得到 ‘d.txt’

os.path.getsize
获取文件大小:
os.path.getsize(‘/root/11’) 返回值86,已是是86个字节

os.path.getatime os.path.getctime os.path.getmtime
获取文件的atime(access time),ctime(change time),mtime(modify time)

os.system()
运行shell命令
例如 os.system(‘ls’) os.system(‘toch /tmp/haha2’)

os.getenv()
读取环境变量

os.putenv()
设置环境变量

os.stat
获取文件属性
os.stat(‘/tmp/z/x’)
结果:os.stat_result(st_mode=16877, st_ino=2102723, st_dev=64768, st_nlink=3, st_uid=0, st_gid=0, st_size=4096, st_atime=1476435074, st_mtime=1476435066, st_ctime=1476435066)

os.chmod
修改文件权限与时间戳
os.chmod(‘/tmp/07’, 0o777) 修改’/tmp/07’的权限为777,为什么是0o777我也不清楚
文件操作
os.mknod
创建空文件
os.mknod(‘test.txt’)

open
直接打开一个文件,如果文件不存在则创建文件
open(‘testopen.txt’, ‘w’)
参考以下文档
http://www.jb51.net/article/47999.htm
http://www.cnblogs.com/herbert/archive/2010/09/30/1839382.html

共有 0 条评论

Top