【发布时间】:2020-12-24 23:57:55
【问题描述】:
我正在开发一个更新/更改 CSV 文件夹中元素的程序。它首先按列表读取 CSV 文件列表,并检查序列号是否与用户提供的序列号匹配。如果是,那么它会要求用户更改下一个元素。
但在我的程序中,即使条件满足,第一个 IF 循环也没有运行。我尝试输入的序列号存在于列表中,但仍然无法执行。请研究这个问题。
这是我的代码。
def update():
f=open("daily.csv",'r')
r=csv.reader(f)
sno=int(input("WHICH RECORD DO YOU WANT TO UPDATE? (ENTER THE SERIAL NO.)"))
next(r)
for i in r:
if i[0]==sno:
ch=int(input("1.CHANGE CATEGORY (PRESS 1)2.CHANGE AMOUNT (PRESS 2)3.CHANGE DATE (PRESS 3)"))
if ch==1:
nc=input("PLEASE ENTER NEW CATEGORY")
i[1]=nc
print(i)
elif ch==2:
na=int(input("PLEASE ENTER THE NEW AMOUNT"))
i[2]=na
print(i)
elif ch==3:
nd=int(input("PLEASE ENTER THE NEW DATE"))
i[3]=nd
print(i)
else:
print("INVALID SERIAL NO")
f.close()
【问题讨论】:
-
请使用示例用户输入和您希望程序找到的 cvs 文件中的相应行来更新您的问题。
-
我希望输入不需要 int()。你的意思是 sno = input(.....)?
-
顺便说一句,我不希望我的程序对我的用户大喊大叫。
-
检查
i[0]的数据类型。如果口译员说他们不相等,那他们就不是。这可能是因为您的测试将int与字符串进行比较。
标签: python list loops csv file