os
模块提供了对系统文件进行操作的方法:
import os
文件目录操作
当前工作目录
os.getcwd()
当前目录的符号
os.curdir
'.'
更变当前目录
os.chdir('D:')
os.chdir('../')
新建文件夹
os.mkdir('bin')
如果中间路径的文件夹不存在,则直接创建文件夹。
os.makedirs('lib/bin')
删除文件夹
rmdir
既可以删除文件夹,又可以删除文件。
os.rmdir('bin')
unlink
仅用于删除文件,如果路径不是文件则会出错。
os.unlink('foo.txt')
删除文件夹,并删除中间路径中的空文件夹。
os.removedirs('lib/bin')
重命名
第一个参数是原文件(夹)路径,第二个参数是目标文件(夹)路径。
os.rename('foo.txt', 'bin/foo.txt')
如果中间路径的文件夹不存在,renames
函数会创建文件夹。
os.renames('foo.txt', 'lib/bin/foo.txt')
列出所有文件(夹)名
listdir
返回给定目录下的所有文件夹和文件名(list
),不包括 .
和 ..
以及子文件夹下的目录。
os.listdir(os.curdir)
系统常量
当前操作系统的换行符:
# Windows 为 \r\n
# Linux 为 \n
os.linesep
'\n'
当前操作系统的路径分隔符:
os.sep
'/'
当前操作系统的环境变量中的分隔符(;
或 :
):
os.pathsep
';'
存储当前操作系统所有环境变量的字典:
os.environ
文件路径操作
测试
检测一个路径是否为普通文件
os.path.isfile('../foo.txt')
False
检测一个路径是否为文件夹
os.path.isdir('../bin')
False
检测路径是否存在
os.path.exists('../lib')
False
检测路径是否为绝对路径
os.path.isabs('/usr/bin')
True
切分
split
函数可以将一个路径拆分为 (head, tail)
两部分。
os.path.split(r'C:\Users\Administrator\Desktop\foo.txt')
('C:\\Users\\Administrator\\Desktop', 'foo.txt')
os.path.split('/home/user/bin')
('/home/user', 'bin')
合并
join
函数使用系统的路径分隔符,将各个部分合成一个路径。
os.path.join(r'C:\Program Files\Microsoft Office', 'WINWORD.exe')
'C:\\Program Files\\Microsoft Office\\WINWORD.exe'
os.path.join('/etc/apt/', 'sources.list')
'/etc/apt/sources.list'
其他
返回路径的绝对路径
os.path.abspath('../')
'D:\\'
返回路径中的文件夹部分
os.path.dirname(r'D:\Program Files (x86)\Steam\steam.exe')
'D:\\Program Files (x86)\\Steam'
返回路径中的文件部分
os.path.basename(r'D:\Program Files (x86)\Steam\steam.exe')
'steam.exe'
将路径与扩展名分开
os.path.splitext(r'D:\Program Files (x86)\Steam\steam.exe')
('D:\\Program Files (x86)\\Steam\\steam', '.exe')