从另一个 Python 脚本加载新值

Load new values from another Python script

我有一个在 for 循环中控制的设备。如果 .txt 文件已更改,我想检查每次迭代。如果有,我想读取值并将它们发送到设备。我正在检查文件是否像这样更新:

os.stat("myfile.txt").stat.st_mtime

当我手动打开文件、写入值和保存文件时,这工作正常。 我想通过另一个 Python 脚本更改值,该脚本将被另一个进程 运行 更改。在另一个脚本中,我将值写入 .txt 文件,如下所示:

text_file = open("myfile.txt", 'w') 
text_file.write("\n0\n0\n0")
text_file.close()

当我调用 open() 时,st_mtime 发生变化并且我没有加载任何内容,因为文本文件是空的。如何处理?除了文本文件之外,还有其他方法可以通过另一个 Python 进程设置新值吗?

您可以尝试另一种方法来检查内容是否已更改,例如检查 MD5 校验和。

import hashlib
..
my_hex = hashlib.md5(text_file.read()).hexdigest()

您现在可以监控 my_hex 每次迭代以检查您的文件内容是否已更改。

我用了3个文件。我检查第 3 个文件 st_mtime 是否已更改。我将新值写入第二个文件,然后打开和关闭第三个文件。 St_mtime 第 3 个文件发生更改,因此我可以安全地从第二个文件加载值。 :)