python - 以 "w"模式打开文件 : IOError: [Errno 2] No such file or directory

标签 python file-io

当我尝试使用以下代码以 write 模式打开文件时:

packetFile = open("%s/%s/%s/%s.mol2" % ("dir", "dir2", "dir3", "some_file"), "w")

我收到以下错误:

IOError: [Errno 2] No such file or directory: 'dir/dir2/dir3/some_file.mol2'

如果文件不存在,w 模式应该创建文件,对吗?那么这个错误怎么会发生呢?

最佳答案

如果包含您尝试打开的文件的 目录 不存在,即使尝试以 w 模式打开文件,您也会看到此错误。

由于您使用相对路径打开文件,因此您可能对该目录到底是什么感到困惑。尝试快速打印以检查:

import os

curpath = os.path.abspath(os.curdir)
packet_file = "%s/%s/%s/%s.mol2" % ("dir", "dir2", "dir3", "some_file")
print "Current path is: %s" % (curpath)
print "Trying to open: %s" % (os.path.join(curpath, packet_file))

packetFile = open(packet_file, "w")

关于python - 以 "w"模式打开文件 : IOError: [Errno 2] No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2401628/

相关文章:

python - 无法安装ffmpeg

python - 使用 os.popen 在 python 中创建列表

java - 将文件写入仍然不存在的目录

c++ - 文件无法打开,即使 stat() 可以找到它

c - 如何使用 open 以 "append"模式打开文件?打开?

python - 安装包时 JetBrains DataSpell ModuleNotFoundError 错误

python - 配置设置窗口大小的最小值和最大值 Kivy

python - 从 python 脚本中创建一个 virtualenv

java - 为什么写入文件的整数会被读取为不同的值?

java - CSV 文件,二进制格式更快?最快的搜索?