簡體   English   中英

將文件保存到 output 文件夾,如果不存在則創建它

[英]Save file to output folder creating it if it does not exist

我正在使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM