OS模块
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
博主小学未毕业,请勿口喷!