从正在运行的程序中收集数据

Posted

技术标签:

【中文标题】从正在运行的程序中收集数据【英文标题】:collecting data from running program 【发布时间】:2017-11-15 16:24:28 【问题描述】:

我正在解决一个问题,我应该从正在运行的程序中多次收集数据。例如,程序每次执行完命令后,都会给出一定的 t 值,每次运行都不同。我的任务是从程序的 N 次运行中收集 t。 t 每次运行都会有所不同。这是程序:

import random 
th=0  
t=0
tr=0 
result=[]
for i in range(7):
  i=random.randint(0,1)
  result.append(i)
print(result)
a=0
b=len(result)-1
while th<50: 

  j=random.randint(a,b)
  i=j-1
  k=j+1
if k<b
   k=0
if result[i]==result[k]:
    if result[j]!=result[i]:
        result[j]==result[i]
         th=0
        t+=1
   else:
        th+=1 
        t+=1
   else:
    th+=1
    t+=1

   tr= t-th
print(tr)
print (result)

在这个程序中,每次运行都会给你新的结果。在这个生成的数组中,显然每次都会有不同的 0 和 1 排列,因此,不同的 t。所以得到的 t, tr 当然会有所不同。 我不知道我应该在新窗口中执行此操作,还是有某个功能可以执行此操作。另外,如果这个问题很简单,并且有相关文献,请写出这种问题的名称。谢谢:)

顺便说一句,我正在使用 python 3.6

【问题讨论】:

这道题的问题不是太简单;它太宽泛了。有很多可能的答案。为什么要多次运行一个程序?它不会每次都提供相同的答案吗? 好的,谢谢这个问题,我会更新我的描述。 最简单也是最好的方法是让您阅读如何将此脚本转换为可重复执行的 Python 函数。然后,在调用程序中,您只需根据需要多次运行该函数即可实现您为自己设置的方差目标。您还可以考虑让函数将其结果返回给调用程序,调用程序将负责将它们写入文件以进行保管。这是非常基础的编程,并不难。 谢谢,我已经完成了。 【参考方案1】:

参见how to make one Python script launch another:您可以编写一个 Python 脚本来运行另一个脚本并收集输出。您可以从函数调用接收输出作为返回值,并像从任何函数中一样计算它。

请注意,您的“正在运行的程序”和您的主脚本需要就返回信息的形式达成一致:了解您接收的数据类型。如果您有疑问,请先让您的主脚本打印出它接收到的内容以及每个返回值的类型。

【讨论】:

好的,但可能有点矫枉过正。 好吧,这样我的意图就很清楚了:/

以上是关于从正在运行的程序中收集数据的主要内容,如果未能解决你的问题,请参考以下文章

笑话:自动从测试文件中收集覆盖率

从第三方应用程序获取数据

在命令行中分析正在运行的 Java 应用程序

如何从 .NET 应用程序收集探查器数据

使用句柄从 CreateProcess() 收集输出

以指定的时间间隔定期运行异步方法