ont*_*cks 1 python-3.x pathlib
我的机器中有以下预先存在的文件夹
D:\scripts\myfolder
Run Code Online (Sandbox Code Playgroud)
我希望我的脚本创建一个名为 的文件夹并在其中logs创建一个文件。log.txt所以路径看起来像
D:\scripts\myfolder\logs\somelog.txt
Run Code Online (Sandbox Code Playgroud)
所以我用了
p = pathlib.Path("D:\scripts\myfolder\logs\somelog.txt")
p.mkdir(parents=True, exisit_ok=True)
Run Code Online (Sandbox Code Playgroud)
现在
print(p.parents[0])==>D:\scripts\myfolder\logs
print(p.parents[1])==>D:\scripts\myfolder
print(p.parents[2])==>D:\scripts
因此,根据Path.mkdir文档
p.mkdir(parents=True, exisit_ok=True)应该创建文件夹logs,myfolder或者scripts等等(如果它们不存在)。
some.txt但它会按inside文件夹的名称创建一个文件夹logs,尽管它不是parents. 为什么会这样?
我知道解决方法是使用pathlib.Path("D:\scripts\myfolder\logs")
的全部要点mkdir是创建其参数指向的目录。传入还会另外parents=True创建父文件夹。
在此给定路径中创建一个新目录。[...]如果父母为真,则根据需要创建该路径的任何缺失的父母;[1]
如果要确保包含目录存在,请创建路径的父目录:
p = pathlib.Path("D:\scripts\myfolder\logs\somelog.txt")
p.parent.mkdir(parents=True, exist_ok=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |