如果文件不存在,则将其保存到创建该文件的输出文件夹中



我正在使用pathlib库来处理脚本中的I/O。我读取了一个文件,路径为:

PosixPath('input/ADE/data_f34.dat')

父文件夹input/是固定的,但子文件夹(ADE(和文件名都不是固定的,即它们随着每次迭代而变化。我需要一个通用程序来存储一个新的文件,该文件的名称为,路径为:

PosixPath('output/ADE/data_f34.dat')

即,尊重子文件夹和文件名,但将input/更改为output/output文件夹总是存在的,但我不知道子文件夹output/ADE/是否存在,所以如果不存在,我需要创建。如果一个同名的文件已经存在,我可以简单地覆盖它

使用pathlib处理此问题的正确方法是什么?

这就是您想要的吗?

import pathlib
src = pathlib.PosixPath('input/ADE/data_f34.dat')
dst = pathlib.Path('output', *src.parts[1:])
dst.parent.mkdir(parents=True, exist_ok=True)
with open(dst, 'w') as d, open(src) as s:
d.write(s.read())

您可以使用relative_to:

from pathlib import PosixPath
filename = PosixPath('input/ADE/data_f34.dat')
output_dir = PosixPath('output')
path = output_dir / filename.relative_to('input')
path.parent.mkdir(parents=True, exist_ok=True)
print(path)

打印

output/ADE/data_f34.dat

相关内容

  • 没有找到相关文章

最新更新