这是一个奇怪的问题,我有一个读取 csv 文件的方法,因此我为其创建了一个单元测试,就像这样简单:
def test_csv(self):
with open(self.csv_file_path, 'rb') as csv_file:
response = csv_parser_method(csv_file)
assert response here
因此,如果我在那里添加 pdb
断点并检查 self.csv_file_path
文件的内容,它是空的
(Pdb) import csv
(Pdb) reader = csv.reader(csv_file, delimiter=str(','))
(Pdb) [row for row in reader]
[]
这很奇怪,如果我打开一个普通的 shell,它有内容,当然文件也有内容......
最佳答案
您的 csv_parser_method
已读取整个 CSV 文件,因此 csv_file
文件对象的指针已位于文件末尾,因此当您使用 csv.reader
尝试读取它,但它什么也没得到,因为文件末尾的位置之后没有更多内容。
您可以使用 seek
方法将文件指针重置回文件开头,以便 csv.reader
可以读取该文件:
csv_file.seek(0)
reader = csv.reader(csv_file, delimiter=str(','))
关于python - 运行 django 测试时 csv 文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55126486/