【问题标题】:Print event detects to CSV打印事件检测到 CSV
【发布时间】:2019-05-04 17:24:04
【问题描述】:

我正在尝试使用按钮来记录对企业的访问次数。如何获取每个按钮检测事件并将其写入 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 文件中它自己的行中。

【问题讨论】:

标签: python csv datetime


【解决方案1】:

您可以将每个事件附加到 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() 函数接受一个值列表,并将它们作为行写入文件中,每个值之间用逗号分隔。

在本例中,列表包含两个值,当前时间和当前计数器值。 datetime 函数用于为您记录的事件添加时间戳。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多