python FileNotFoundError

时间:2015-08-31 00:07:33

标签: python text-files filenotfoundexception

我正在编写一个程序,使用open()函数访问程序开头的.txt文件。它在IDE上运行没有任何错误,我也能够从IDE运行时读取文本文件而没有任何问题。虽然当我从Python Launcher运行时,它抛出了一个" FileNotFoundError" 这是我的代码:

directions_object = open('warcards_directions.txt','r')

2 个答案:

答案 0 :(得分:1)

继Dan D的评论之后..试着把它放在open()电话前面的一行:

 from os.path import abspath
 print(abspath('warcards_directions.txt'))

你会看到python在不同的地方看起来取决于你运行它的位置..因为它查找相对于当前工作目录的文件,这取决于你运行python的方式。

这是新来者的常见问题。请参阅此处How to import files in python using sys.path.append?了解一些解决方案(请注意该帖子中的基本问题与此相同......他们正在尝试导入文件这一事实,我们在这里尝试打开一个不太重要。)

另外我还要补充一点,我经常引用与脚本本身相关的内容......就像这样:

from os.path import abspath, join, dirname

script_dir = dirname(__file__)
txt_path = abspath(join(script_dir, "..", "path", "to", "warcards_directions.txt"))

如果您的txt文件和python脚本相对于彼此保持在相同的位置(但可能安装在不同的位置),则此方法有效。

E.g。假设您的脚本位于C:\ Foo \ scripts \ script.py中,并且您的文本文件位于C:\ Foo \ path \ to \ warcards_directions.txt中。上面的方法可以正常运行脚本,如果您移动或重命名C:\ Foo目录(例如C:\ Program Files \ Bar),它将起作用。但是如果你决定将scripts.py从一个目录下移到C:\ Foo中,那么它就会中断(此时你会改变txt_path初始化的方式来修复)。

答案 1 :(得分:0)

当你说“python启动器”时,你的意思是命令行吗?

python myScript.py

如果您,您将需要cd进入文件所在的目录,然后才能执行该脚本。否则,请在脚本中提供txt文件的完整路径。