我有这段代码,我正在读取 csv 文件,使用NamedTemporaryFile
更改 csv 文件的内容。
def update_localcsv():
ping = ["Yes","No"]
filename = 'file1.csv'
tempfile = NamedTemporaryFile(mode= 'w',delete=False)
with open(filename, 'rt') as csvFile, tempfile:
reader = csv.reader(csvFile, delimiter=',', quotechar='"')
writer = csv.writer(tempfile, delimiter=',', quotechar='"')
for row in reader:
print(row)
row[0] = random.choice(ping)
curr_time = datetime.datetime.time(datetime.datetime.now()).strftime('%I:%M %p')
row[1] = str(curr_time)
print('current time: '+str(curr_time))
print("New ping status = " + str(row))
writer.writerow(row)
shutil.move(tempfile.name, filename)
当我运行这段代码时我可以看到print(row)
印刷['Yes', '04:23 PM']
但随后它抛出IndexError: list assignment index out of range
错误于row[0] = random.choice(ping)
.
这是我的 csv 文件中的当前内容:
Yes,04:23 PM
为什么会出现这个错误呢?
NOTE:当我做print(type(row))
I get <class 'list'>
。我还看到打印了一个空行:
['Yes', '04:23 PM']
current time: 05:03 PM
New ping status = ['Yes', '05:03 PM']
[]