Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查新条目是否已在csv文件中_Python_Python 3.x_Csv - Fatal编程技术网

Python 检查新条目是否已在csv文件中

Python 检查新条目是否已在csv文件中,python,python-3.x,csv,Python,Python 3.x,Csv,我通过QT Creator表单接收用户输入。此用户输入被传递给将此输入写入CSV文件的函数。一切正常。没问题 但是当一些新的输入完成,并且CSV文件已经包含一行,其中一个特定的“列”等于来自用户输入的相同“列”,那么它应该忘记新的输入(用户输入),只修改特定“列”上的CSV文件行或者,它应该从CSV文件中删除旧条目,并将用户输入作为新条目写入CSV文件 def check_and_save(newEntry): ### add some new variables to newEntry

我通过QT Creator表单接收用户输入。此用户输入被传递给将此输入写入CSV文件的函数。一切正常。没问题

但是当一些新的输入完成,并且CSV文件已经包含一行,其中一个特定的“列”等于来自用户输入的相同“列”,那么它应该忘记新的输入(用户输入),只修改特定“列”上的CSV文件行或者,它应该从CSV文件中删除旧条目,并将用户输入作为新条目写入CSV文件

def check_and_save(newEntry): 

  ### add some new variables to newEntry
  a_count = 0
  b_count = 0
  c_count = 0


  #### what the function should do
  1. check if there is a specific CSV FILE 
     (i.e CSVFILE('StrikeListReport'))

     if the CSV FILE does NOT exist create CSVFILE('StrikeListReport') 
        and write -- new entry -- in a row to it

     else if CSV FILE('StrikeListReport') already exists:

        1. open CSV FILE('StrikeListReport')

        2. go trough each row in CSV FILE('StrikeListReport') and \
           check if --newEntry-- already exist in the 
           CSV FILE('StrikeListReport') based on --new entry[2]-- 
           #(staff_id) 

        3. if --new entry[2] -- already exist in 
           CSV FILE('StrikeListReport')

           the function should either:    

             1. delete the -- old entry -- 
                add (+1) to -- new entry --'s -- a_count -- #new entry[4]
                then write -- new entry -- to CSV FILE('StrikeListReport')

           or :

              2. forget about the --new entry -- 
                 and just add( + int(1) ) to the 
                 -- old entry --'s -- a_count -- # old entry[4] then
                 save / write  CSV FILE('StrikeListReport') with changed 
                 -- old entry --
我的尝试 来自QT Creator的用户输入 staff_firstname=“Jane” staff_lastname=“DOE” 员工_id=“809564” store_id=“809” 选择事件=“只是一些文本” strike_comment=“只是一些文字” 日期=“2012” 类DoIt: def保存和发送罢工报告(自我、员工名、员工姓、员工id、门店id、所选事件、, 罢工(备注、日期): 罢工次数=0 滞留人数=0 hr\u惩罚\u计数=0 新罢工报告=[员工名、员工姓、员工id、门店id、, 选定事件、罢工、拘留、人力资源处罚、罢工评论、, [日期] 以open('StrikeListReport'+store_id+'.csv',“r”)作为csvfile: reader=csv.reader(csvfile,分隔符=“;”) 对于读卡器中的项目: 对于新罢工报告中的新罢工项目: 如果新项目[2]==项目[2]: 项目=项目[5]+1 将open('StrikeListReport'+store_id+'.csv',“a”)作为csvfile_输出: writer=csv.writer(csvfile\u out) writer.writerow(项目) 其他: 将open('StrikeListReport'+store_id+'.csv',“a”)作为csvfile_输出: writer=csv.writer(csvfile\u out) writer.writerow(新项目) bla=DoIt() bla.保存并发送罢工报告(员工名、员工姓、员工id、门店id、所选事件、罢工评论、日期) 无论我怎么努力,我的输出总是这样。 上面的代码只是我解决问题的方法之一:

  • _csv.错误:应为iterable,而不是int
  • TypeError:“int”对象不可下标
  • --它只是将(i)写入我的CSV文件,以“,”分隔
  • --写无限

  • 只是想知道使用SQLite的解决方案是否更适合此应用程序。这听起来像是在使用csv存储一个简单的类似SQL的表。有很多方法可以更新CSV,但它们看起来效率很低。好的,感谢您的建议选择一个实现和一个错误,并用所有输入和完整的回溯详细描述它(没有单独的伪代码;我们可以很好地阅读简单的代码)。问题。如何显示一些我没有的代码?我是newto codeing和stackoverflow的新手。所以,我怎样才能显示一些我现在完全不知道从哪里开始的代码呢。我不明白,只是想知道使用SQLite的解决方案是否更适合这个应用程序。这听起来像是在使用csv存储一个简单的类似SQL的表。有很多方法可以更新CSV,但它们看起来效率很低。好的,感谢您的建议选择一个实现和一个错误,并用所有输入和完整的回溯详细描述它(没有单独的伪代码;我们可以很好地阅读简单的代码)。问题。如何显示一些我没有的代码?我是newto codeing和stackoverflow的新手。所以,我怎样才能显示一些我现在完全不知道从哪里开始的代码呢。我不明白