2024-09-29 19:18:41 发布
网友
假设我有两个模块:caller_module.py和program_module.py。我需要通过caller_module.py来创建program_module.py的多个运行(以便在每次运行时获得不同的pythonhasheed)
caller_module.py
program_module.py
然后我需要使用program_module.py在每次运行中创建的输出,并对其进行一些比较
问题: 如何动态创建不同的program_module.py运行,以及如何获取其输出(比较输出很容易)
您可以使用subprocess模块创建进程。它有一个名为check_output的专用函数,允许您获取模块的标准输出env关键字允许显式设置子进程的哈希种子
env
import sys import subprocess outputs = {} for hash_seed in xrange(1024): outputs[hashseed] = subprocess.check_output([sys.executable, 'program_module.py'], env={'PYTHONHASHSEED': str(hash_seed)})
我不完全清楚你想做什么,你需要什么样的论点,等等。但是作为第一个近似值,看看^{}。我猜你想要这样的东西:
import subprocess import sys output = subprocess.check_output([sys.executable, 'program_module.py'])
这基本上是使用当前Python可执行文件在当前目录中运行名为program_module.py的模块的最低代码。它应该大致类似于从命令行或控制台执行python program_module.py
python program_module.py
您可以将check_output调用包装在一个循环中,以根据需要运行任意次数
check_output
请注意,这假设^{}在您的配置中是一个合理的值
默认情况下,check_output()将返回被调用程序写入stdout的任何内容。最简单的方法是通过内置的^{}函数。您print()的内容由check_output()作为字符串返回,因此在上面的示例中我设置为output的变量就是您想要查看的
check_output()
stdout
print()
output
您可以使用subprocess模块创建进程。它有一个名为check_output的专用函数,允许您获取模块的标准输出
env
关键字允许显式设置子进程的哈希种子我不完全清楚你想做什么,你需要什么样的论点,等等。但是作为第一个近似值,看看^{} 。我猜你想要这样的东西:
这基本上是使用当前Python可执行文件在当前目录中运行名为
program_module.py
的模块的最低代码。它应该大致类似于从命令行或控制台执行python program_module.py
您可以将
check_output
调用包装在一个循环中,以根据需要运行任意次数请注意,这假设^{} 在您的配置中是一个合理的值
默认情况下,} 函数。您
check_output()
将返回被调用程序写入stdout
的任何内容。最简单的方法是通过内置的^{print()
的内容由check_output()
作为字符串返回,因此在上面的示例中我设置为output
的变量就是您想要查看的相关问题 更多 >
编程相关推荐