1

我对下面的代码有三个问题,基本上我正在尝试使用格式 currentdate 写入行,计数,继续将行日期附加到相同的 .csv 文件中。阅读最近的 5 个条目并打印它,目前我尝试了以下并遇到以下错误。

1.如何写一行格式为当前日期,计数到 csv 文件 2.如何在下次运行脚本时继续附加相同的 .csv 文件 3.如何从 . .csv 文件

import csv
import datetime

icount=5
now = datetime.datetime.now()
time =now.strftime("%Y-%m-%d %H:%M")
#Keep appending date and count everytime this script is run
c = csv.writer(open("trend.csv", "wb"))
c.writerow(time,icount)

#Now read the recent 5 entries and print
cr = csv.reader(open("trend.csv","rb"))

for row in cr:    
    print row

错误:-

>>>>python database.py
Traceback (most recent call last):
  File "database.py", line 9, in <module>
    c.writerow(time,icount)
TypeError: writerow() takes exactly one argument (2 given)
4

2 回答 2

2
  1. 您得到的错误是因为writerow将 interable 作为参数,所以请尝试:

    c.writerow([time, icount])
    
  2. 如果要附加到文件而不是覆盖现有文件,请使用'a'而不是w在打开文件时使用,ala:

    open('trend.csv', 'a')
    

    这在Python 文档中进行了解释

  3. 您可能可以运行过滤器或对来自阅读器的行进行排序。这可能会变得混乱,因此像csvquerytool这样的替代工具可能会有所帮助。pypi 上很少有这样的库。

于 2013-06-27T01:42:25.643 回答
0

不确定这是否已经完全解决,但如果您尝试打印多个元素,您可以将它们全部放入一个列表并将列表打印为一行。

于 2020-08-19T03:34:27.757 回答