Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从循环python进程中获取值_Python_Python 2.7_Loops - Fatal编程技术网

如何从循环python进程中获取值

如何从循环python进程中获取值,python,python-2.7,loops,Python,Python 2.7,Loops,我需要帮助理解Python中的一个概念 我想在导入/打印代码实际运行的时间点打印python循环中运行的变量的特定值 “当前”值是指导入和打印代码实际运行时变量的(单个)值 我需要这样做的实际代码/原因有点抽象,如果我使用确切的代码,可能会使事情复杂化,因此为了简单和清晰起见,我在下面提供了一个简化的示例 我有两个文件: file1.py import datetime while True: x = datetime.datetime.now() print x 运行时会打印

我需要帮助理解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的特定值

例如,如果在2017-03-08 11:34:22.782000执行file2.py中的导入/打印代码,则应打印以下内容

2017-03-08 11:34:22.782000
Process finished with exit code 1
我遇到的问题是,当我运行下面的import和print语句时,日期/时间打印在一个滚动列表中,该列表似乎反映了file1.py正在执行的操作,并且没有像我预期的那样返回特定的时间点值x

file2.py

import file1
print file1.x
简言之,我的问题是,如何从重复过程中导入并打印变量的特定时间点值,而不是导入并打印整个重复过程

我希望这是有意义的,如果我在这里遗漏了什么,请原谅我,但我一直在试图找到一个解决方案,但没有成功,所以我想我会看看我是否可以在这里得到任何提示


非常感谢您的帮助。谢谢…

如果您想通过访问
file1.x
来计算
x
的值,就像它是一个
属性一样,您可以对其进行排序,形成一个包含属性的模块对象:

import types, sys, datetime

class UpdateDetector(types.ModuleType):
    @property
    def x(self):
        x = datetime.datetime.now()
        return x

self = UpdateDetector(__name__)

sys.modules[__name__] = self

请注意,如果这是您正在寻找的行为类型,那么不重写模块,只使用具有属性的对象而不是模块对象将非常容易(并且对其他不希望这样做的人来说也不会那么烦人)。或者更好的方法是使用(getter)函数,比如
datetime.datetime.now()
;)

为什么不直接从另一个脚本调用
datetime.datetime.now()
?还是这是一个XY问题?@MarkSmith的可能重复(如果不是,那么我不明白您想要什么)@MarkSmith的代码示例,它肯定是重复的。当您在file2.py中导入test1
时,file1.py的
while True
-循环将被执行,并且您永远不会到达
print test1.x
-语句(该语句将引发错误)。@MarkSmith如果它是重复的,请阅读重复的。如果您对文件和进程有混淆,请阅读。如果一个外部进程更新了一个变量,那么导入它的源代码并不会神奇地建立与外部进程的链接,而只是运行原始脚本的一个新副本。如果test1看起来像您的代码,您就不想导入它。谢谢Tadhg McDonald Jensen-我需要花一些时间来理解您上面写的内容,以及您所指的副本中写的内容-我遇到的实际问题是一个通过pika/RabbitMQ更新的变量。我有一个接收amqp消息并将其存储在变量中的流程,当我尝试获取变量的特定时间点值时,我会收到一个滚动列表,这表明我正在复制您和其他人指出的接收器代码。。。我将对此进行进一步调查,并就此进行回复-非常感谢(所有)您的帮助!