1.python路径拼接os.path.join()函数的用法
os.path.join()函数:连接两个或更多的路径名组件
- 如果各组件名首字母不包含’/’,则函数会自动加上
- 如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
- 如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
Demo1
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
2.os.path.expanduser(path)使用
例子:
>>> os.path.expanduser('~/data')
'C:\\Users\\chenxuqi/data'
3.Python os.walk()
os.walk的函数声明为:
walk(top, topdown=True, οnerrοr=None, followlinks=False)
参数
top 是你所要便利的目录的地址
topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启)
onerror 需要一个 callable 对象,当walk需要异常时,会调用
followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)
os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。
每次遍历的对象都是返回的是一个三元组(root,dirs,files)
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
参考自:python中os.walk的用法
例子1:
data文件夹里面有四个文件,两个是文件夹,一个是Ipython的文件,一个是压缩文件。如下图所示
可以从上述代码看出,压缩文件是不会展示的。所以循环了三次
- 第一次:循环中,root=data文件夹,dirs=data文件夹下面的两个文件夹。files=ipython的文件
- 第二次:循环中,root=.ipython_checkpoints文件夹,dirs=.ipython_checkpoints文件夹下面没有子文件夹,所以是[]。files是Data.ipynb~如图所示。
- 第三次:循环中,root=faces文件夹,dirs=faces文件夹下面没有子文件夹,所以是[]。files=faces文件夹下面所有的图片。就是很长一段。
例子2:遍历文件夹和文件
def walkFile(file):
for root, dirs, files in os.walk(file):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名list
# files 表示该文件夹下的文件list
# 遍历文件
for f in files:
print(os.path.join(root, f))
# 遍历所有的文件夹
for d in dirs:
print(os.path.join(root, d))