【发布时间】:2017-07-29 00:44:08
【问题描述】:
我需要帮助来理解 Python 中的一个概念。
我想在导入/打印代码实际运行的时间点打印在 python 循环中运行的变量的特定值。
“当前”值是指实际运行导入和打印代码时变量的(单个)值。
我需要执行此操作的实际代码/原因有点抽象,如果我使用确切的代码可能会使事情复杂化,因此为了简单明了,我在下面提供了一个简化示例。
我有两个文件:
file1.py
import datetime
while True:
x = datetime.datetime.now()
print x
运行时打印并滚动当前日期/时间,如下所示:
2017-03-08 11:34:22.363000
2017-03-08 11:34:22.363000
2017-03-08 11:34:22.452000
2017-03-08 11:34:22.452000
2017-03-08 11:34:22.782000
2017-03-08 11:34:22.782000
2017-03-08 11:34:22.970000
....
我希望能够运行另一个 python 文件/进程,在导入和打印代码实际运行的特定时间导入和打印 x 的特定值。
例如,如果 file2.py 的导入/打印代码在 2017-03-08 11:34:22.782000 执行,则应打印以下内容...
2017-03-08 11:34:22.782000
Process finished with exit code 1
我遇到的问题是,当我运行以下导入和打印语句时,日期/时间打印在一个滚动列表中,这似乎反映了 file1.py 正在做什么,并且不返回特定的时间点值和我预期的一样……
file2.py
import file1
print file1.x
简而言之,我的问题是,如何从重复过程中导入和打印变量的特定时间点值,而不是导入和打印完整的重复过程。
我希望这是有道理的,如果我在这里遗漏了什么,请原谅我,但我一直试图找到解决方案但没有成功,所以我想看看我是否可以在这里得到任何指示......
非常感谢任何帮助。谢谢...
【问题讨论】:
-
为什么不直接从其他脚本调用
datetime.datetime.now()?或者这是一个XY问题? meta.stackexchange.com/questions/66377/what-is-the-xy-problem -
Why is Python running my module when I import it, and how do I stop it? 的可能重复项(如果不是,那么我不明白你想要什么)
-
@MarkSmith 与您的代码示例,它肯定是重复的。当您在 file2.py 中
import test1时,file1.py 的while True-loop 将被执行,并且您永远不会到达您的print test1.x-statement(这应该会引发错误)。 -
@MarkSmith 这是重复的,请阅读重复。
-
恕我直言,您在文件和进程之间存在混淆。如果一个外部进程更新了一个变量,导入它的源并不会神奇地建立与外部进程的链接,而只是运行原始脚本的一个新副本。如果 test1 看起来像你的代码,你不想导入它。
标签: python python-2.7 loops