[英]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.