【发布时间】:2017-05-11 08:58:39
【问题描述】:
我正在将文件写入 csv,但它显示列表索引超出范围。这是我的代码。我有一个包含 85 个文件的目录。
import os
import os.path
import csv
import re
import calendar
path = 'C:\\Users\\akhilpriyatam.k\\Desktop\\xls'
text_files = [os.path.splitext(f)[0] for f in os.listdir(path)]
for v in text_files:
os.chdir('C:\\Users\\akhilpriyatam.k\\Desktop\\xls')
with open('file1.csv', 'wb') as csvfile:
thedatawriter = csv.writer(csvfile,delimiter=',')
for v in text_files:
months = list(calendar.month_name[1:])
regex = re.compile('|'.join(months))
iter = re.finditer(regex, v)
if iter:
idx = [i for i in iter][0].start()
filename, timestamp = v[:idx],v[idx:-4]
print filename, timestamp
thedatawriter.writerow([filename,timestamp])
这是错误。
IndexError Traceback (most recent call last)
<ipython-input-145-0b1c3f1407ed> in <module>()
15 iter = re.finditer(regex, v)
16 if iter:
---> 17 idx = [i for i in iter][0].start()
18 filename, timestamp = v[:idx],v[idx:-4]
19 print filename, timestamp
IndexError: list index out of range
【问题讨论】:
-
总是在问题中添加 FULL 错误消息(回溯) - 有很多有用的信息 - 即。哪条线有问题,等等。
-
IndexError Traceback (最近一次调用最后)
in () 15 iter = re.finditer(regex, v) 16 if iter: ---> 17 idx = [i for i in iter][0].start() 18 文件名,时间戳 = v[:idx],v[idx:-4] 19 打印文件名,时间戳 IndexError: list index out of range -
添加有问题的
Traceback- 它将更具可读性,每个人都会阅读它。
标签: python regex python-2.7 csv