你好,我正在尝试制作一个程序,更新csv中的值。用户搜索ID,如果ID存在,它将获取要在ID号所在行上替换的新值。这里row[0:9]
是我的ID的长度
我的想法是从0-9或我的ID号所在的位置扫描每一行,当找到它时,我将使用.replace()
方法替换它之外的值。我就是这么做的:
def update_thing():
replace = stud_ID +','+ stud_name +','+ stud_course +','+ stud_year
empty = []
with open(fileName, 'r+') as upFile:
for row in f:
if row[0:9] == stud_ID:
row=row.replace(row,replace)
msg = Label(upd_win, text="Updated Successful", font="fixedsys 12 bold").place(x=3,y=120)
if not row[0:9] == getID:
empty.append(row)
upFile.close()
upFile = open(fileName, 'w')
upFile.writelines(empty)
upFile.close()
但这不管用,我需要一些解决办法。
使用
csv
模块,您可以遍历行并以dict的形式访问每个行。正如here所述,更新文件的首选方法是使用临时文件。如果仍然不起作用,您可以尝试以下编码之一:
编辑:添加str、打印和编码
只需在读取原始行的同时写入一个新文件,根据Stud\u ID值有条件地更改行。新文件的后缀名为New。
相关问题 更多 >
编程相关推荐