python - 无法在Python中写入文件

标签 python

可能是一个非常菜鸟的问题..

但是 当我尝试时:

f = open(os.path.join(os.path.dirname(__file__), filename),"w")

我收到错误

IOError: [Errno 2] No such file or directory: '/home/path/filename'

是不是因为我说了“w”..如果它不存在,它会写入一个新文件?

最佳答案

错误消息可以这样重现:

import os
filename = '/home/path/filename'
f = open(os.path.join(os.path.dirname(__file__), filename),"w")
f.close()

# IOError: [Errno 2] No such file or directory: '/home/path/filename'

这里的问题是filename是绝对路径,所以 os.path.join 忽略第一个参数并返回文件名:

In [20]: filename = '/home/path/filename'

In [21]: os.path.join(os.path.dirname(__file__), filename)
Out[21]: '/home/path/filename'

因此,您不仅指定了一个不存在的文件,还指定了一个不存在的目录open 拒绝创建目录。

关于python - 无法在Python中写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14860381/

相关文章:

python - 使用循环将多个数据框从上到下合并到单个工作表中

python - 什么是段错误 : 11 mean and how do you fix it?

python - 根据其他字段重新计算pandas数据框字段的更好方法

python - 如何重新安装 lxml?

python - 回到 python 中的一个中断循环

python - 实现了自己的 __getattr__;遇到意外错误

python - 如何将值插入列表列表

python - 删除 Python URL 列表末尾的特殊字符/标点符号

python - 如何使用 BeautifulSoup (Python) 从 HTML 标签中提取文本?

python - 使用 Python 和 wxPython 的 3D/4D 图形?