打印事件检测到CSV

时间:2019-05-04 17:24:04

标签: python csv

我正在尝试使用按钮记录访问公司的次数。如何获取每个按钮检测事件并将其写入csv文件中的单独行?

def button_callback(channel):
    global counter
    counter = counter +1
    print("A Check-in #", counter)


GPIO.add_event_detect(17, GPIO.FALLING, callback=button_callback, bouncetime=300)

我希望将签到的每张打印内容添加到csv文件中自己的行中。

1 个答案:

答案 0 :(得分:0)

您可以将每个事件添加到CSV文件,如下所示:

from datetime import datetime
import csv


def button_callback(channel):
    global counter

    counter += 1

    print("A Check-in #", counter)

    # Append row to a CSV file
    with open('output.csv', 'a', newline='') as f_output:
        csv_output = csv.writer(f_output)
        timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        csv_output.writerow([timestamp, counter])


GPIO.add_event_detect(17, GPIO.FALLING, callback=button_callback, bouncetime=300)

这显示了如何写入CSV文件。 csv.writer()用于简化将值的行写入文件的过程。 writerow()函数获取一个值列表,并将它们作为行写入文件中,并用逗号分隔每个值。

在此示例中,列表包含两个值,即当前时间和当前计数器值。

这将为您提供示例输出,如下所示:

2019-05-07 08:21:31,1
2019-05-07 08:27:06,2