有两个模块可用
这里说下pathlib模块,只要python版本大于3.4 都自带标准库pathlib
from path lib import Path
p = Path() #当前目录 初始
p = Path(‘a’,’b’,’c’,’d/e’) #当前目录下的a/b/c/d/e
p = Path(‘/etc’) #根目录下的etc目录
parents 父目录序列,索引0相当于/根目录
也可以像访问列表那样,通过输入索引来获取值
name 目录的最后一部分,可以是文件名,也可以是目录名
suffix 目录中最后一个部分的扩展名
stem 目录最后一个部分,没有后缀
suffixes 返回多个扩展名列表,可以对比下suffix来看
cwd() 返回当前目录
home() 返回当前价目录
is_dir() 是否是目录
is_file() 是否是普通文件
is_symlink() 是否是软链接
is_socker() 是否是socket文件
is_block_device() 是否是块设备
is_char_device() 是否是字符设备
is_absolute() 是否是绝对路径
exists() 目录或文件是否存在
rmdir() 删除空目录
touch(mode=0o666,exist_ok=True) 创建空文件
mkdir(mode=0o777,parents=False,exist_ok=False) 创建目录,parents=True时,相当于mkdir -p,False时则会报错FileNotFountError,exist_ok=True时,FileNotFoundError被忽略
iterdir() 迭代当前目录
练习
遍历目录,并判断文件类型,如果是目录再判断是否为空
from pathlib import Path
def yourdir(dir_cur):
'''check file type'''
for x in Path(dir_cur).parents[0].iterdir():
print(x,end='\t')
if x.is_dir():
flag = False
for _ in x.iterdir(): #如果目录为空,则无法迭代
flag = True
break
print('dir','Not Empty' if flag else 'Empty',sep='\t')
elif x.is_file():
print('file')
else:
print('other file')
if __name__ == '__main__':
yourdir('/Users/fei/tmp/ops')
这里我们遍历的上级目录下的所有文件。