gpt4 book ai didi

python - 读取 PC 的开启和关闭时间?

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:17 25 4
gpt4 key购买 nike

我正在写一个小例程来跟踪我的 sleep 周期。通常,当我醒来时,我会在几分钟内打开电脑,因此读出系统何时打开和何时关闭会很棒。这个程序在这里执行相同的功能 https://www.neuber.com/free/pctime/

我尝试在谷歌上搜索可以调用这些系统事件的库或函数,但大多数结果都是使用命令打开和关闭电脑,所以我的问题是:

获取电脑打开和关闭时间的最佳方法是什么?

谢谢

最佳答案

如果您使用的是 Linux(我在这里假设使用 Systemd),您可以编写一个在启动/关闭时执行代码的服务。该代码会将当前时间戳连同指示符“启动”或“关闭”写入 CSV 文件。

这是一个 Python3 脚本,它将时间戳类型作为第一个参数记录到“updownlog.txt”:

import os
import sys
import time


def main():
logfile = "updownlog.csv"
write_header = False

if len(sys.argv) != 2:
sys.exit("Error: script takes exactly one argument")

if sys.argv[1] != "shutdown" and sys.argv[1] != "startup":
sys.exit("Error: First argument should be 'startup' or 'shutdown'")

typ = sys.argv[1]

if not os.path.exists(logfile):
write_header = True

with open("updownlog.csv", "a") as f:
now = time.time()

if write_header:
f.write("type,timestamp\n")

f.write("{},{}\n".format(typ, now))


if __name__ == "__main__":
main()

接下来,您需要创建触发此脚本的系统服务。我无耻地复制 this answer on UnixSX 中提供的解决方案:全部归功于“John 9631”!如果您仍然使用基于 init.d 的系统,该线程中也有很好的答案。

因此,为您的日志创建服务文件:

vim /etc/systemd/system/log_start_stop.service

并复制文件内容:

[Unit]
Description=Log startup and shutdown times

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart="/home/Sungod3k/log.py startup"
ExecStop="/home/Sungod3k/log.py shutdown"

[Install]
WantedBy=multi-user.target

然后使用以下命令启用该服务:

systemctl enable log_start_stop

当然,这还不能告诉您是否有 sleep 不足,因此您需要进行一些后处理,例如使用 Python 或 R,甚至 awk

关于python - 读取 PC 的开启和关闭时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52915262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com