一、os.path.join()函数
功能:连接两个或更多的路径名组件。
1.如果各组件名首字母不包含’/’,则函数会自动加上。
2.第一个以”/”开头的参数开始拼接,之前的参数全部丢弃,当有多个时,从最后一个开始。
3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾。
print("22:",os.path.join('/aaaa/','bbbb/','ccccc.txt')) #通常可以这样写>>>22: aaaa/bbb/ccccc.txt
import os
Path1 = 'home'
Path2 = 'develop'
Path3 = 'code'
Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1, Path2, Path3)
print('Path10 = ', Path10)
print('Path20 = ', Path20)
# 输出:
Path10 = homedevelopcode
Path20 = home\develop\code
二、os.sep()函数
python是跨平台的。
在Windows上,文件的路径分隔符是'\',在Linux上是'/'。
os.sep根据你所处的平台,自动采用相应的分隔符号。
dir = os.sep("usr", os.sep, "share", os.sep, "python")
=> Linux 下的路径为 /usr/share/python,那么上面的os.sep就是‘/’;
=> windows下的路径为 \usr\share\python,那么上面的os.sep就是‘\’.
三、os.walk()函数
os.walk(top, topdown=True, οnerrοr=None, followlinks=False)
可以得到一个三元tupple(dirpath, dirnames, filenames),
第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
dirpath:一个String,代表目录的路径,
dirnames:一个list,包含了dirpath下所有子目录的名字。
filenames:一个list,包含了非目录文件的名字。
这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).
通过for循环自动完成递归枚举
例如:
F:\aaa 目录是这样的文件目录结构
F:\aaa
|--------1.txt
|--------2.txt
|--------3.txt
|--------4
|-------5.txt
|-------6.txt
|-------7.txt
分别打印各个参数的实际值:
#!/usr/bin/env python
# 2.py
# use UTF-8
# Python 3.3.0
# os.walk()的使用
import os
# 枚举dirPath目录下的所有文件
def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
for root, dirs, files in os.walk(fileDir):
#begin
print(root)
print(dirs)
print(files)
#end
os.system("pause")
#end
if __name__ == '__main__':
#begin
main()
#end
# 输出
# F:\aaa
# ['4']
# ['1.txt', '2.txt', '3.txt']
# F:\aaa\4
# []
# ['5.txt', '6.txt', '7.txt']
四、os.listdir()函数
返回指定的文件夹包含的文件或文件夹的名字的列表,但是子目录下文件不遍历。