繁体   English   中英

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

[英]How to open and write a file into an existing directory

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

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

但是我们越来越

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

为什么无法识别目录?

您编写的代码没有问题。

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

这将成功写入正确的目录。 您遇到的错误是IOerror,因此建议此处还有其他问题。

综观上的ioerror文档python.org我们可以看到一些原因,为什么这可能会弹出。 No such file or directory向我建议一些不同的东西。

  1. 您正在从不存在该文件夹结构的目录中运行python文件。
  2. 您正在以可能没有该目录权限的用户身份运行python文件。 (我怀疑另一个Errno会证明这一点)
  3. 您的硬盘驱动器已满或类似的东西。

总而言之,这仅仅是猜测。 如果捕获到该错误,则可能能够从该错误中获取更多信息:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM