gpt4 book ai didi

python - 将文件写入不存在的目录

转载 作者:太空狗 更新时间:2023-10-29 17:09:57 24 4
gpt4 key购买 nike

如何使用 with open() as f: ... 将文件写入不存在的目录中。

例如:

with open('/Users/bill/output/output-text.txt', 'w') as file_to_write:
file_to_write.write("{}\n".format(result))

假设 /Users/bill/output/ 目录不存在。如果该目录不存在,只需创建该目录并将文件写入其中。

最佳答案

您需要先创建目录。

mkdir -p 实现 from this answer会做你想做的。 mkdir -p 将根据需要创建任何父目录,如果它已经存在则静默不做任何事情。

在这里,我实现了一个 safe_open_w() 方法,它在打开文件进行写入之前在路径的目录部分调用 mkdir_p:

import os, os.path
import errno

# Taken from https://stackoverflow.com/a/600612/119527
def mkdir_p(path):
try:
os.makedirs(path)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise

def safe_open_w(path):
''' Open "path" for writing, creating any parent directories as needed.
'''
mkdir_p(os.path.dirname(path))
return open(path, 'w')

with safe_open_w('/Users/bill/output/output-text.txt') as f:
f.write(...)

针对 Python 3 更新:

import os, os.path

def safe_open_w(path):
''' Open "path" for writing, creating any parent directories as needed.
'''
os.makedirs(os.path.dirname(path), exist_ok=True)
return open(path, 'w')

with safe_open_w('/Users/bill/output/output-text.txt') as f:
f.write(...)

关于python - 将文件写入不存在的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23793987/

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