首页 > 解决方案 > 将文件保存到输出文件夹,如果它不存在则创建它

问题描述

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

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

父文件夹input/是固定的,但子文件夹 ( ADE) 和文件名都不是固定的,即它们随着每次迭代而改变。我需要一个将军来存储一个同名的文件,到路径:

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

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

处理这个问题的正确方法是什么pathlib

标签: pythonpathio

解决方案


这是你要找的吗?

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())

推荐阅读