【问题标题】:Opening file error in Python : No such file or directory在 Python 中打开文件错误:没有这样的文件或目录
【发布时间】:2020-06-12 16:18:31
【问题描述】:

我是在这里写作的新手。所以请多多包涵。

我正在运行此代码来打开我的文件,并将其放在正确的目录“数据”中。但是我的 python 不断地给我发送错误信息。

这是我写的,

#file = unidecode.unidecode(open('./data/input.txt').read())
#file = unidecode.unidecode(open('./data/linux.txt').read())

file = unidecode.unidecode(open('./data/hh1.txt').read())
file_len = len(file)
print('file_len =', file_len)

然后弹出这个

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-36-aa7f0f650918> in <module>()
  4 #file = unidecode.unidecode(open('./data/linux.txt').read())
  5 
  ----> 6 file = unidecode.unidecode(open('./data/hh1.txt').read())
  7 file_len = len(file)
  8 print('file_len =', file_len)

 FileNotFoundError: [Errno 2] No such file or directory: './data/hh1.txt

code image directory

它是 RNN(循环神经网络)代码的一部分,它是处理文本数据以学习编织图案的一部分。

这是一个非常简单的错误,但我找不到好的出路....所以感谢您的耐心阅读本文,我希望有人可以帮助我

【问题讨论】:

  • 你能澄清你的问题吗? FileNotFoundError 表示找不到文件。除了确保文件实际上在指定的位置之外,没有什么可以做的。 ./data/hh1.txt./hh1.txt 处实际上有文件吗?请注意,您的代码/错误非常奇怪地包含两个名称,显示了失败行的两个不同变体..
  • 路径相对于您当前的工作目录。你能import os;print(os.getcwd()) 找出那是什么吗?这是您期望的目录吗?
  • 哦.. 我只是注意到我没有编辑所有代码。很抱歉造成混淆。我放置了正确的目录,但我拖动了我特别编辑的错误代码。我又编辑了!!
  • 我输入了该代码,它显示了“/content”。那么它是一个需要解释的背后路径......?我对这里很陌生,很僵硬,但感谢您的耐心

标签: python recurrent-neural-network


【解决方案1】:

您正在尝试打开相对路径中数据文件夹内的文件。

open('./data/hh1.txt').read()

如果你的脚本在

/home/user/test.py

这个尝试打开:

/home/user/data/hh1.txt

如果你使用

open('./hh1.txt').read()

这个尝试打开

/home/user/hh1.txt

这与您的脚本在同一目录中。

你可以使用:

import os
print(os.listdir())

它会显示当前目录中的所有文件。

如果您使用的是相对路径,请检查从当前目录到目标文件的路径。

【讨论】:

  • 感谢您的回答。我找到了三个目录名,所以我会试一试。谢谢!
【解决方案2】:

您输入的路径的解释可能与预期不同。这取决于多种情况,例如您正在执行的 Python 文件在哪里以及它是否属于更大的项目。

调试此问题的一个好方法是将您尝试使用的路径扩展为其绝对路径。您可以使用以下代码执行此操作:

import os
print(os.path.abspath("./data/hh1.txt"))

这将输出类似"/home/user/project/data/hh1.txt"

您可以检查此输出并验证您的文件是否位于正确的位置,或者您的路径是否可能不正确。

【讨论】:

  • 哦哇...它显示了我没有承认的'/content/data/hh1.txt'!非常感谢您提供的信息。 XD 但是我把它放在开放代码上,但它是一样的。我把'./content/data/hh1.txt'和'/content/data/hh1.txt'都放了。你能教我内容是什么意思吗?
  • @Dferrari,使用此信息,您应该确保您的文件位于data/ 目录中,该目录位于content/ 目录中。 content/ 目录只是路径中./ 表示的目录。这有帮助吗?
  • 啊,我明白了。 'content/' 和 './' 是一样的 真的很抱歉打扰你了,但是你能看看我刚刚在帖子中添加的“目录”照片吗?我认为这是正确的方式......
  • @Dferrari,不用担心。在 Unix 操作系统上,./ 代表当前目录。您放置数据的目录似乎不在content/ 目录中。您应该使用os.getcwd() 来查找您应该将data/ 目录放在其中的目录。现在,您正在执行一个 Python 脚本,该脚本与您的数据位于不同的位置。
  • 我用了你的信息,终于成功了!!!!!!我将该文本文件放入当前文件的数据文件夹中!我非常感谢你让我理解的努力。你是我的英雄...非常感谢你 XD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
  • 2018-07-06
  • 2019-01-19
  • 1970-01-01
  • 2019-01-26
  • 2021-06-08
  • 1970-01-01
相关资源
最近更新 更多