代码之家  ›  专栏  ›  技术社区  ›  Dimitrios Desyllas

使用python编写带有前缀值的CSV行

  •  0
  • Dimitrios Desyllas  · 技术社区  · 7 年前

    import csv
    from datetime import datetime
    from collections import deque
    
    def writeCSV(path,participants,values):
    
        time=datetime.now()
    
        with open(path, 'a', newline='') as csvfile:
            writer = csv.writer(csvfile)
            for value in values:
                if type(value) is list:
                    value.prepend(participants)
                    value.prepend(time)
                    writer.writerow(value)
                else:
                    writer.writerow([time,participants,value])
    
    
    if __name__ == '__main__':
        writeCSV('demo.csv',15,[['hentai','ecchi'],['power','ranger']])
    

    Traceback (most recent call last):
      File "csv_deque.py", line 21, in <module>
        writeCSV('demo.csv',15,[['hentai','ecchi'],['power','ranger']])
      File "csv_deque.py", line 13, in writeCSV
        value.prepend(participants)
    

    我怎样才能解决这个问题。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dimitrios Desyllas    7 年前

    prepend 方法(但如果有,那就太好了)

    因此,正如我在我的案例中所做的那样,我建议您的脚本变成这样:

    import csv
    from datetime import datetime
    from collections import deque
    
    def writeCSV(path,participants,values):
    
        time=datetime.now()
    
        with open(path, 'a', newline='') as csvfile:
            writer = csv.writer(csvfile)
            for value in values:
                if type(value) is list:
                    value=deque(value)
                    value.appendleft(participants)
                    value.appendleft(time)
                    writer.writerow(value)
                else:
                    writer.writerow([time,participants,value])
    
    
    if __name__ == '__main__':
        writeCSV('demo.csv',15,[['hentai','ecchi'],['power','ranger']])
    

    如你所见,我使用 dequeue 如图所示 answer 出列 对象以及csv。