Python中的IOError:“没有这样的文件或目录”
我正在写一个django项目,这个项目需要从一个表格中获取数据。我有一个模块,其中有一行代码用来获取一些数据(snp_data.txt是和这个模块在同一个文件夹里的文件):
data = file("snp_data.txt")
当我在django项目外单独调用这个模块时,它运行得很好;但是当我在django应用程序中和其他模块一起调用时,我总是遇到下面的错误。
no such file or directory as 'snp_data.txt'
有没有人知道这是怎么回事?
1 个回答
14
你正在尝试在当前工作目录中打开一个文件,因为你没有指定文件的路径。你需要使用绝对路径来打开文件:
import os.path
BASE = os.path.dirname(os.path.abspath(__file__))
data = open(os.path.join(BASE, "snp_data.txt"))
因为当前工作目录通常和模块所在的目录不一样。
注意,我使用了open()
而不是file()
;前者是推荐的方法。