【发布时间】:2024-05-18 14:30:02
【问题描述】:
我有一个文本文件reval2_log.txt,其中包含像
yield_curve on;DATE_val 2013 12 31;arion on;INFL_filn /srv/www/tbg/file/1/2014-07-21/Vaxtaferlar_nidur.csv;ASSETS_filn /srv/www/tbg/file/1/2014-07-21/Vordur_VT.xls;REVAL_filn kfjh.xls;CPI_value 416.7;LSK_value 8022.3;YIELDC_filn /srv/www/tbg/file/1/2014-07-21/infl.csv;CASHF_filn weouhf.xls;sjf on;user 1
然后我这样做:
f = open('reval2_log.txt', 'r')
read = f.readlines()[0].split(";")
它返回一个IndexError。 Python 当然可以找到该文件,因为它不会返回“找不到文件”错误(如果我将文件名弄乱了也会返回)。
追踪:
File "/srv/www/tbg/notendur/views.py" in reikna_reval2
79. reval2.main(user)
File "/srv/www/tbg/calc/reval2.py" in main
322. read = f.readlines()[0].split(";")
Exception Type: IndexError at /notendur/reikna/
Exception Value: list index out of range
【问题讨论】:
-
为什么你使用
.readlines()只是为了得到第一行?为什么不改用f.readline()(单数)呢?f.readline().split(';'). -
很好,这当然更明智。我会改变的
-
你能显示堆栈跟踪吗?
-
@Firkamon:它现在还生成
IndexError吗?因为如果你的文件是 empty,.readlines()返回一个空列表,并且索引 0.. 处没有项目 -
不,看来不是。尽管文件不是空的,但列表仍然是空的