我正在开发一个程序,用于更新/更改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()
答案 0 :(得分:0)
我认为问题在于文件中的值被读取为字符串。尝试先将s [0]转换为int然后进行比较。另外,如果您使用的是像pycharm这样的IDE,请使用内置调试器查看这些值以及它们为何失败。 问题也可能与您尝试访问的索引“ s”有关。如果没有调试器,请尝试打印值和值的类型,因为这可能有助于调试过程。