Python版本:2.6.6
我正在尝试使用 Python 创建一个不存在的文件open('file/path/file_name', 'w')
。但是,我不能像这样对文件路径进行硬编码,因为我需要将它作为包含用户指定路径的变量传入。
这有效:open('/home/root/my_file.txt', 'w')
但我的代码没有:
import os
import sys
input = sys.argv[1] # assume it's "/home/root"
path = os.path.join(input, "my_file.txt")
f = open(path, 'w')
导致异常IOError: [Errno 2] No such file or directory: '/home/root/my_file.txt'
除了“w”,我还尝试了其他一些模式,比如“w+”和“a”,但都没有奏效。
谁能告诉我如何解决这个问题?它是由于我使用它的不正确方式引起的,还是因为我使用的 Python 版本?
谢谢。
更新:
我找到了解决问题的方法:我不小心忘记创建尚不存在的目录。这是我的最终代码:
import os, errno
import sys
input = sys.argv[1]
try:
os.makedirs(input)
except OSError as e:
if e.errno == errno.EEXIST and os.path.isdir(input):
pass
else:
raise
path = os.path.join(input, "my_file.txt")
with open(path, "w") as f:
f.write("content")