当文件在同一目录中时,“没有这样的文件或目录”

时间:2015-05-17 21:39:40

标签: python working-directory

两个文件,.py文件和它用

调用的.txt文件
champions_list = open('champions.txt','rU').read().split('\n')

位于文件夹C:\Users\[My Name]\Programming\[file name]

我通过命令提示符调用.py文件,它返回错误

IOError: [Errno 2] No such file or directory: champions.txt

之前有没有发生过这种事?

2 个答案:

答案 0 :(得分:2)

当您使用open('champions.txt')打开文件时,操作系统希望在当前目录中找到champions.txt文件。当前目录是启动程序的命令提示符窗口的目录。这不一定与存储Python脚本的目录相同。

您可以通过执行以下操作来解决此问题:

import os
import sys

open(os.path.join(os.path.dirname(sys.argv[0]), 'champions.txt')

这将获取sys.argv[0]中脚本的全名,获取目录部分,然后将其连接到所需的文件名。这将打开脚本目录中的文件,而不是当前目录。

(请注意,以这种方式使用sys.argv[0]取决于操作系统,并且可以在Windows上运行,但在其他系统上可能无法以相同的方式运行。)

答案 1 :(得分:-1)

仅仅因为文件位于同一文件夹,因为脚本并不意味着python解释器知道该文件存在。它正在寻找cwd中的文件。你可以:

  • 尝试使用文件的完整绝对路径;或
  • 使用os.path.append
  • 添加包含该文件的目录