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

时间:2015-11-17 13:04:41

标签: python dir

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

outfile = open('cyt_dir/' +s+ ".html", "w")

但我们正在

  

IOerror [ERRno2]没有这样的文件或目录:'cyt_dir /

为什么不识别目录?

2 个答案:

答案 0 :(得分:0)

您编写的代码没有问题。

>>> s = "face"
>>> f = open('cyt_dir/' +s+ ".html", "w")
>>> f.write("testy testerson")
>>> f.close()

这成功写入正确的目录。你得到的错误是IOerror,所以建议其他的东西在这里发挥作用。

查看python.org上的IOerror文档,我们可以看到为什么会出现这种情况的原因。 No such file or directory向我提出了一些不同的建议。

  1. 您正在从此文件夹结构不存在的目录中运行python文件。
  2. 您正在以可能没有该目录权限的用户身份运行python文件。 (我怀疑不同的Errno会证明这一点)
  3. 你的硬盘装满了或类似的东西。
  4. 总而言之,这只是猜测。如果你抓住错误,你可能会从错误中获得更多信息:

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

答案 1 :(得分:0)

这很可能是当前路径问题,您需要知道从哪里执行脚本。或者,作为替代方案,提供绝对路径而不是相对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)