gpt4 book ai didi

基于文本文件字符串的Python条件语句

转载 作者:太空宇宙 更新时间:2023-11-04 08:56:31 25 4
gpt4 key购买 nike

菜鸟问题在这里。我每 2 小时为 Python 脚本安排一次 cron 作业,但我希望脚本在 48 小时后停止运行,这不是 cron 的功能。为了解决这个问题,我使用计数标记 x 在文本文件中记录脚本末尾的执行次数,并在脚本开头打开文本文件,以便仅在以下情况下运行计数小于 n

但是,无论条件如何,我的脚本似乎总是运行。这是我尝试过的示例:

with open("curl-output.txt", "a+") as myfile:
data = myfile.read()

finalrun = "xxxxx"

if data != finalrun:
[CURL CODE]

with open("curl-output.txt", "a") as text_file:
text_file.write("x")
text_file.close()

我想我在这里遗漏了一些简单的东西。请告知是否有更好的方法来实现这一目标。提前致谢。

最佳答案

您的原始代码的问题是您在 a+ 中打开文件模式,它似乎将搜索位置设置为文件末尾(在读取文件后立即尝试 print(data))。如果你使用 r相反,它有效。 (我不确定它应该是这样的。This answer 声明它应该写在最后,但从头开始阅读。documentation 不是很清楚)。

一些建议:而不是与 "xxxxx" 进行比较字符串,你可以只检查数据的长度(if len(data) < 5)。或者,按照建议,使用 pickle 存储一个数字,它可能如下所示:

import pickle
try:
with open("curl-output.txt", "rb") as myfile:
num = pickle.load(myfile)
except FileNotFoundError:
num = 0

if num < 5:
do_curl_stuff()
num += 1
with open("curl-output.txt", "wb") as myfile:
pickle.dump(num, myfile)

关于您的原始代码的另外两件事:您正在制作第一个 with阻止比它需要的更大。将字符串读入 data 后,您不再需要文件对象,因此您可以从除 data = myfile.read() 之外的所有内容中删除一级缩进。 .

此外,您不需要关闭 text_file手动。 with将为您完成(这就是重点)。

关于基于文本文件字符串的Python条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683367/

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