1. 获取当前目录
>>> import os
>>> os.getcwd()
'C:\\Users\\wangshijun'
2. 切换目录
>>> os.chdir(r'd:')
>>> os.getcwd()
'D:\\'
3. 递归创建目录
>>> os.makedirs(r"d:\a\b\c\d\e")
4. 递归删除目录,目录为空则会删除,用于清理空目录
>>> os.removedirs(r"d:\a\b\c\d\e")
5. 创建目录,只能在已经存在的路径下创建目录
>>> os.mkdir(r"d:\a\b")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'd:\\a\\b'
>>> os.mkdir(r"d:\a")
>>> os.mkdir(r"d:\a\b")
6. 删除目录
>>> os.rmdir(r"d:\a")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [WinError 145] 目录不是空的。: 'd:\\a'
>>> os.rmdir(r"d:\a\b")
>>> os.rmdir(r"d:\a")
7. 列出目录中的文件
>>> os.makedirs(r"d:\a\b\c\d\e")
>>> os.chdir(r"d:\a")
>>> os.listdir(".")
['b']
>>> os.listdir(r"d:\a\b")
['c']
8. 查看文件属性
>>> os.stat(r"d:\a\b")
os.stat_result(st_mode=16895, st_ino=2814749767195796, st_dev=543840957, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1502878514, st_mtime=1502878514, st_ctime=1502878514)
9. 分割符(windows和Linux的分隔符区别)
# windows
>>> os.sep
'\\'
>>> os.linesep
'\r\n'
>>> os.pathsep
';'
# Linux
>>> os.sep
'/'
>>> os.linesep
'\n'
>>> os.pathsep
':'
10. 查看操作系统类型
# Windows
>>> os.name
'nt'
# Linux
>>> os.name
'posix'
11. 执行操作系统命令
# Windows
>>> os.system("dir")
驱动器 D 中的卷没有标签。
卷的序列号是 206A-5ABD
d:\a 的目录
2017/08/16 18:15 <DIR> .
2017/08/16 18:15 <DIR> ..
2017/08/16 18:15 <DIR> b
0 个文件 0 字节
3 个目录 64,921,755,648 可用字节
0
>>> os.system("ipconfig")
# Linux
>>> os.system('df -h')
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 185M 16G 2% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/cl-root 44G 19G 26G 42% /
/dev/sda1 1014M 235M 780M 24% /boot
12. 路径操作(文件目录可以不存在)
>>> os.path.split(r"d:\a\b\c\d\11.txt") #路径分割
('d:\\a\\b\\c\\d', '11.txt')
>>> os.path.dirname(r"d:\a\b\c.txt") #取文件所在的目录
'd:\\a\\b'
>>> os.path.basename(r"d:\a\b\c.txt") #取文件的名称
'c.txt'
13. 判断文件是否存在
>>> os.path.exists(r"d:\a\b\c.txt")
False
>>> os.path.exists(r"d:\a\b\c")
True
14. 判断一个路径是否是绝对路径
>>> os.path.isabs(r"d:\a\b\c")
True
>>> os.path.isabs(r"a\b\c")
False
>>> os.path.isabs(r"/a/b/c")
True
15. 判断一个对象是否一个文件或目录
>>> os.path.isdir(r"d:\a\b\c")
True
>>> os.path.isfile(r"d:\a\b\c")
False
16. 将多个路径组合返回
>>> os.path.join(r"d:",r"\a",r"c",r"b.txt")
'd:\\a\\c\\b.txt'
17. 获取文件或目录的存取、修改时间
>>> os.path.getatime(r"d:\a\b") #获取最后存取时间
1502878514.5859802
>>> os.path.getmtime(r"d:\a\b") #获取最后内容修改时间
1502878514.5859802
>>> os.path.getctime(r"d:\a\b") #获取最后文件改变时间
1502878514.5854797