我是编程游戏的新手,本季度在学校学习python。我在导入和读取纯文本文件时遇到了一些问题。出于某种原因,我的老师编写的代码与他也写的纯文本文件一起工作,但是当我只是更改文件的名称并尝试打开另一个纯文本文件时,我收到一条错误消息。
以下是我老师的代码:
fileHandler = open("carBrands.txt","r")
car = fileHandler.readline(4)
print(car)
这是我的代码:
fileHandler = open("cars.txt","r")
car = fileHandler.readline(4)
print(car)
正如您所看到的,我唯一改变的是文件名,但由于某种原因,我收到此错误消息:
Traceback (most recent call last):
File "/Users/**********/Downloads/5-13 and 5-15 Files 2/testopen.py", line 2, in <module>
fileHandler = open("cars.txt")
FileNotFoundError: [Errno 2] No such file or directory: 'cars.txt'
我已经三次检查确实存在&#39; cars.txt&#39;文件,有些我想知道是否有人可以帮助清理我犯错误的地方。
谢谢!
答案 0 :(得分:1)
传递到open
的路径是 relative 到当前工作目录。在大多数情况下,这是您运行脚本时所在的目录,而不必然是脚本所在的目录。
以下是一个示例 - 假设您在主目录script.py
中的目录test/
中有一个文件/home/kellan/
。它的完整路径是/home/kellan/test/script.py
,它包含以下内容:
fileHandler = open("cars.txt", "r")
car = fileHandler.readline(4)
print(car)
将cars.txt
放入test/
,使其完整路径为/home/kellan/test/cars.txt
。在您的主目录中,使用以下命令运行脚本:
python test/script.py
这应该会引发FileNotFoundError
或IOError
。
现在,运行mv test/cars.txt cars.txt
以使cars.txt
现在位于您的主目录中,然后再次运行该脚本。它应该现在可以工作,因为在脚本中,您打开的文件的路径相对于当前工作目录。