gpt4 book ai didi

python - 如果目录和文件名尚不存在,则立即创建

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:52 25 4
gpt4 key购买 nike

如果完整路径尚不存在,我试图立即创建它,但我不确定这是否可能。这是我现在的代码:

absolute_path = '/home/{signup_code}/{resource}/process'
missing_file = absolute_path.format(resource='agents', signup_code=signup_code)
with open(missing_file, 'a') as f:
f.write(listing_kwargs['agent_id'] + "\n")

这是我收到的错误:

FileNotFoundError: [Errno 2] No such file or directory: '/home/ith/agents/process'

或者我必须做这样的事情:

path = '/home/{signup_code}/{resource}/'
os.makedirs(path, exist_ok=True)

process = os.path.join(path, 'process')

with open(process, 'a') as f:
f.write(listing_kwargs['agent_id'] + "\n")

最佳答案

没有办法直接做到这一点。您需要将其分成两部分。首先,使用 os.makedirs() 创建路径,然后打开该文件。好处是您可以将此过程包装在一个函数中,以便轻松重复:

import os
from contextlib import contextmanager

@contextmanager
def open_with_create_path(fname, file_mode='r', buffering=-1,
encoding=None, errors=None, newline=None,
dir_mode=0o777, exist_ok=True):
os.makedirs(os.path.dirname(fname), mode=dir_mode, exist_ok=exist_ok)
f = open(fname, mode=file_mode, buffering=buffering, encoding=encoding,
errors=errors, newline=newline)
try:
yield f
finally:
f.close()

FNAME = r'C:\temp\foo\bar\baz.txt'
with open_with_create_path(FNAME, 'w') as f:
print('foo', file=f)

关于python - 如果目录和文件名尚不存在,则立即创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com