如何使用with open() as f: ...在不存在的目录中写入文件.
例如:
with open('/Users/bill/output/output-text.txt', 'w') as file_to_write:
file_to_write.write("{}\n".format(result))
Run Code Online (Sandbox Code Playgroud)
假设该/Users/bill/output/目录不存在.如果目录不存在,只需创建目录并在那里写入文件.
Jon*_*art 33
您需要先创建目录.
这个答案的mkdir -p实现将完成你想要的.将根据需要创建任何父目录,并且如果它已经存在则默默地执行任何操作.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(...)
Run Code Online (Sandbox Code Playgroud)
Yak*_*eri 25
对于 Python 3 可以与pathlib.Path 一起使用:
from pathlib import Path
p = Path('Users'/'bill'/'output')
p.mkdir(exist_ok=True)
(p / 'output-text.txt').open('w').write(...)
Run Code Online (Sandbox Code Playgroud)
Hag*_*ard 13
Yakir Tuberi 给出的答案很好,但我想补充一点,您需要parents=True嵌套文件夹的参数,如此处所述。因此,代码如下所示:
from pathlib import Path
p = Path('Users/bill/output')
p.mkdir(parents=True, exist_ok=True)
with (p / 'output-text.txt').open('w') as opened_file:
opened_file.write(...)
Run Code Online (Sandbox Code Playgroud)
huu*_*huu 11
自由使用os模块:
import os
if not os.path.isdir('/Users/bill/output'):
os.mkdir('/Users/bill/output')
with open('/Users/bill/output/output-text.txt', 'w') as file_to_write:
file_to_write.write("{}\n".format(result))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24557 次 |
| 最近记录: |