Python 如何打开文件并将其写入现有目录

Python 如何打开文件并将其写入现有目录,python,dir,Python,Dir,我们是python新手,正在尝试写入现有目录cyt_dir中的新文件 但我们正在 IOerror[ERRno2]没有这样的文件或目录:“cyt\u dir/ 为什么它不能识别目录 您编写的代码没有问题 >>> s = "face" >>> f = open('cyt_dir/' +s+ ".html", "w") >>> f.write("testy testerson") >>> f.close() 这将成功写入正确的目

我们是python新手,正在尝试写入现有目录cyt_dir中的新文件

但我们正在

IOerror[ERRno2]没有这样的文件或目录:“cyt\u dir/
为什么它不能识别目录

您编写的代码没有问题

>>> s = "face"
>>> f = open('cyt_dir/' +s+ ".html", "w")
>>> f.write("testy testerson")
>>> f.close()
这将成功写入正确的目录。您得到的错误是IOerror,因此表明这里还有其他原因

查看上的IOerror文档,我们可以看到出现这种情况的一些原因。没有这样的文件或目录对我来说意味着一些不同的事情

您正在一个不存在此文件夹结构的目录中运行python文件。 您正在以可能没有该目录权限的用户身份运行python文件。我怀疑一个不同的厄尔诺会证明这一点 你的硬盘已经满了,或者像这样愚蠢的东西。 总之,这只是猜测。如果捕捉到错误,您可能可以从中获得更多信息:

try:
    f = open('cyt_dir/' +s+ ".html", "w")
except IOError, e:
    print "Not allowed", e

这很可能是当前的路径问题,您需要知道从何处执行脚本。或者,作为替代方案,提供绝对路径而不是相对cyt_dir

我会选择第三种变体,并编写一种机制,从脚本位置提取路径,这样无论发生什么情况,您都是安全的:

path = os.path.dirname(os.path.abspath(__file__))
try:
    outfile = open("%s/cyt_dir/%s.html".format(path, s), "w")
except IOError as e:
    print "I/O error({0}): {1}".format(e.errno, e.strerror)
path = os.path.dirname(os.path.abspath(__file__))
try:
    outfile = open("%s/cyt_dir/%s.html".format(path, s), "w")
except IOError as e:
    print "I/O error({0}): {1}".format(e.errno, e.strerror)