我只想得到PC时间一次,然后它应该永远不会改变,只要程序正在处理。想象一下:
dynamic_pctime = strftime("%H:%M").replace(":", ";")
在10分钟内得到PC时间;以43为例。所以只要程序在运行,它就应该保持在10;43当我访问此变量时
如何节省时间,使其在程序运行时不会在程序内更改
示例:
dynamic_pctime = strftime("%H:%M").replace(":", ";")
ExamplePath = r"C:/Example/Example2"+str(static_pctime)+""
def worker(device):
if device is None:
print ("Device not found")
f = open(ExamplePath + "Devicelist.txt", "w")
f.write("Device not found") + "\r\n")
f.close()
if __name__ == '__main__':
if os.path.exists(ExamplePath):
print("")
else:
os.mkdir(ExamplePath)
print("Path created")
所以我们创建一个文件夹,以时间11:11为例。因此,当工作者访问路径时,他会自动询问动态时间他存储了什么时间。并尝试将文件存储到文件夹中,以获得的时间为准,例如11:12,而不是11:11
所以每个工人得到不同的时间,并试图存储在一个文件夹不存在
在您的最新更新中,Python脚本似乎是由另一个“主”应用程序编写的。它可能暗示了改进整体架构的可能性。但如果不多了解“硕士”项目,就很难说了
如果是这样的话,就由那个“主”程序将时间传递给Python脚本
重要的一点是
datetime.now()
总是返回电流时间。将时间“冻结”的唯一方法是将值保存到某个地方。如果一切都在同一个进程中运行,那么它可能是一个变量。如果-就像在您的例子中-is跨越多个不同的进程,您可能需要将值保存到persisten存储(如纯文本)文件中。但这会带来竞争条件的风险(如果两个进程同时运行并希望创建同一个文件两次怎么办)。这是一种脆弱的做法。只有在绝对必要的情况下我才会这么做更好的方法是让主应用程序单独处理这个问题,并将值作为参数传递给子进程
同样,由于主应用程序的细节缺失,我不得不进行有根据的猜测。这种猜测是主程序是执行其他进程的bash脚本(我可能错了)
因此,在Python脚本中,需要从CLI参数中读取值。这可以通过访问
sys.argv
来实现,但我强烈建议使用argparse
。它只是稍微多了一点工作,但是更易于维护(而且它免费提供了一个help
参数):接下来,“主”应用程序需要将此值传递到子脚本中:
相关问题 更多 >
编程相关推荐