Python3的系统标准库pathlib模块的 Path 对路径的操作会更简单,基本可以替代 os.path。新版本的pathlib2是以修补更新的pathlib2而发布的,而且所有的新功能都可以兼容过去的旧版本python。
下面是一些使用到的记录,更多使用到的功能以后再添加。
遍历文件夹
遍历指定目录文件夹下面的所有文件,在路径对象后面直接使用iterdir()方法,该方法返回一个生成器,循环遍历出所有指定目录下的目录路径。可以很方便对文件进行操作,如合并所有文件等:
from pathlib2 import Path
# 返回目录中最后一个部分的扩展名
example_path = Path('D:/project/En_extract/aclImdb/test/neg')
files=[path for path in example_path.iterdir()]
print(len(files))#12500
print(files[0:5])
>>
[WindowsPath('D:/project/En_extract/aclImdb/test/neg/0_2.txt'), WindowsPath('D:/project/En_extract/aclImdb/test/neg/10000_4.txt'), WindowsPath('D:/project/En_extract/aclImdb/test/neg/10001_1.txt'), WindowsPath('D:/project/En_extract/aclImdb/test/neg/10002_3.txt'), WindowsPath('D:/project/En_extract/aclImdb/test/neg/10003_3.txt')]
>>
with open ("test_neg.txt",'w',encoding='utf-8') as out:
for item in files:
with open(item,'r',encoding="utf-8") as inp:
for line in inp:
out.writelines(line+"\n")
print("done!!")
获取当前目录
from pathlib2 import Path
current_path = Path.cwd()
print(current_path)
>>D:\project\En_extract
创建和删除文件夹
创建文件目录mkdir方法接收两个参数:
parents:如果父目录不存在,是否创建父目录。
exist_ok:只有在目录不存在时创建目录,目录已存在时不会抛出异常。
from pathlib2 import Path
example_path = Path('./test1/test2/test3')
# 创建文件目录,在这个例子中因为本身不存在test1,test2,test3,由于parents为True,所以都会被创建出来。
example_path.mkdir(parents = True, exist_ok = True)
# 删除路径对象目录,如果要删除的文件夹内包含文件就会报错
example_path.rmdir()
网友评论