OS库简介

This module provides a portable way of using operating system dependent functionality.

OS(operating system)模块提供了一种使用操作系统相关功能的便捷方式

常用操作

os.walk()

该函数会以传入的路径参数为根节点,在其目录树中“游走”,对树中的每个目录生成一个由(dirpath, dirname, filename)组成的元组。

例如我们的路径如下

1
2
3
4
5
6
7
8
-test
- test.py
- dir1
-- a.py
- dir2
-- 2a.py
- dir3
-- 3a.py

".“是当前目录,”.."是上级目录

1
2
3
4
import os

for item in os.walk("."):
print("item")

运行结果如下

1
2
3
4
('.', ['dir3', 'dir2', 'dir1'], ['test.py'])
('./dir3', [], ['3a.py'])
('./dir2', [], ['2a.py'])
('./dir1', [], ['a.py'])

更直观的可以这样写

1
2
3
4
5
6
7
import os

for curDir, dirs, files in os.walk("."):
print("---")
print("当前目录: " + str(curDir))
print("该目录下子目录:" + str(dirs))
print("该目录下文件:" + str(files))

运行结果为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
当前目录: .
该目录下子目录:['dir3', 'dir2', 'dir1']
该目录下文件:['test.py']
---
当前目录: ./dir3
该目录下子目录:[]
该目录下文件:['3a.py']
---
当前目录: ./dir2
该目录下子目录:[]
该目录下文件:['2a.py']
---
当前目录: ./dir1
该目录下子目录:[]
该目录下文件:['a.py']

os.listdir()

该函数可以列出目标目录下全部路径及文件

1
os.listdir(".")

运行结果为

1
['test.py', 'dir3', 'dir2', 'dir1']

os.mkdir() & os.makedirs

mkdir学习过Linux命令行的应该比较熟悉,就是创建文件夹(重复创建会报错)

os.makedirs()可以递归创建文件夹

例如

1
os.makedirs("dir4/dir4_1")

再次运行上面的os.walk()便可以看到变化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
---
当前目录: .
该目录下子目录:['dir4', 'dir3', 'dir2', 'dir1']
该目录下文件:['test.py']
---
当前目录: ./dir4
该目录下子目录:['dir4_1']
该目录下文件:[]
---
当前目录: ./dir4/dir4_1
该目录下子目录:[]
该目录下文件:[]
---
当前目录: ./dir3
该目录下子目录:[]
该目录下文件:['3a.py']
---
当前目录: ./dir2
该目录下子目录:[]
该目录下文件:['2a.py']
---
当前目录: ./dir1
该目录下子目录:[]
该目录下文件:['a.py']

os.remove() & os.rmdir()

remove()函数用来删除文件,rmdir()函数用来删除文件夹

removedirs()函数是删除文件夹的递归版本。

os.rename()

rename()函数可以用来给文件或者文件夹重命名

os.getcwd()

getcwd()是"get the current working directory"的简写

实例如下

1
2
3
4
os.getcwd()

# Linux
>>> '/home/qlittle/Code/Python/test'

os.chdir()

chdir()是"change the directory"的简写,chdir()可以用来切换当前工作路径。

1
2
3
4
os.chdir("/home/qlittle")
os.getcwd()

>>> '/home/qlittle'