Python中的IOError:“没有这样的文件或目录”

4 投票
1 回答
7032 浏览
提问于 2025-04-17 17:30

我正在写一个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();前者是推荐的方法。

撰写回答