【问题标题】:Python CSV file input, validation not workingPython CSV文件输入,验证不起作用
【发布时间】:2021-03-18 07:11:28
【问题描述】:

我试图打印出变量 gayle 并且它正确地分配了值。 如果我输入不存在的 ID,我找不到为什么我的程序会停止。

    os.system("clear")
    print('\tSEARCH AND VIEW FILE\n')
    gayle=0

    file_input = input('Search ID Number: ')
    proj = io.open('all_projects.csv', 'r')        
    while True:
        data = proj.readline()
        if file_input in data:
            txt = data
            gayle += 1
            break
    proj.close()
    
    if gayle > 0:
        list2 = txt.split(",")
        i = Preview(list2)
        i.view()
        print(gayle)
        try_again('Search file again?','Invalid input.',2)
    elif (gayle == 0):
        print("Not exist")

【问题讨论】:

  • 你需要在某处将gayle 的初始值设置为0
  • 是的,我忘了包括它。但它有 gayle=0
  • 尝试在 if 条件之外打印 gayle
  • 只是澄清一下,当你说你的程序正在停止时,你的意思是它输出“不存在”并停止还是看起来你的程序冻结了?因为您似乎没有在您的 while true 循环中进行任何检查以在文件末尾中断
  • 你的意思是为什么它没有停止?而不是使用while循环,我猜你想通过使用例如迭代每一行。 for line in open("all_projects.csv", "r"): ... 你可能也想看看csv 模块

标签: python python-3.x csv validation


【解决方案1】:

您只需要遍历文件中的行,就可以使用open()readlines() 函数来执行此操作。将您的文件读取和循环更改为以下内容,它应该可以工作

proj = open('all_projects.csv', 'r')
Lines = proj.readlines()
proj.close()

for line in Lines:
    if file_input in line:
            txt = data
            gayle += 1
            break

【讨论】:

  • 我试过了,效果很好!你救了我,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 2020-08-04
  • 2014-11-29
  • 2014-02-07
  • 2017-01-13
相关资源
最近更新 更多