【问题标题】:Opening a text file in Python在 Python 中打开一个文本文件
【发布时间】:2011-12-20 10:50:13
【问题描述】:

我无法将文本文件读取到列表中,我目前的情况是:

lines = open ('dracula.txt', 'r'). readlines ()

其中 dracula.txt 是与程序位于同一目录中的文本文件,但是在运行程序时 Python 会出现:

No such file or directory: 'dracula.txt'

我不知道为什么它找不到文本文件并将其读取到名为行的列表中,有人有什么想法吗?

【问题讨论】:

  • 您确定要从存储文件的文件夹启动脚本吗?你试过打印os.getcwd()检查工作目录吗?工作目录不是您的脚本所在的目录,而是您启动它的目录。

标签: python file text file-io


【解决方案1】:

假设该文件与您的 .py 文件位于同一目录中

import os

lines = open(os.path.join(os.getcwd(), 'dracula.txt'), 'r').readlines()

【讨论】:

  • 这应该如何对原始代码产生影响?
  • 加入 cwd 是 NOP。
  • 这是他已经得到的默认行为。 os.getcwd() 应更改为所需文件的路径。比如:open(os.path.join('/path/to/vamipres', 'dracula.txt'), 'r').readlines()
【解决方案2】:

在当前工作目录中查找文件名,该目录不一定与脚本所在的目录相同。尝试使用文件的完整路径,或确保工作目录正确。您可以从脚本内部检查工作目录 py 打印 os.getcwd()(确保您是 import os)。

如果您使用的是区分大小写的文件系统,请检查文件名的大小写。

【讨论】:

  • 他的意思是说你像这样在家运行你的脚本:home/user/> python /programming/python/script.py 它认为dracula.txt/home/user/
  • @JohnRiselvato 啊好的,我会尝试包含文件的路径。谢谢你们俩的帮助:)
  • 记住如果这对你来说是正确的答案,请点击检查按钮。
  • 有效!谢谢 :D,虽然回想起来我很遗憾使用 print 仔细检查,但列表有 50,000 字长,哈哈。
  • @JohnRiselvato 我会这样做,但它说我必须等待 3 分钟 :(
猜你喜欢
  • 2021-03-22
  • 2020-10-20
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
相关资源
最近更新 更多