Python—在当前环境中运行另一个Python脚本,传递参数并获得打印输出
这是一个有点难看的问题,但我没有找到现有的SO帖子来涵盖它 现在,我需要在这个平台上使用现有的python工具 这是一段相当大的代码,有很多我不想处理的依赖项。简而言之,可以通过传递命令行参数来运行其模块,例如:Python—在当前环境中运行另一个Python脚本,传递参数并获得打印输出,python,command-line,anaconda,Python,Command Line,Anaconda,这是一个有点难看的问题,但我没有找到现有的SO帖子来涵盖它 现在,我需要在这个平台上使用现有的python工具 这是一段相当大的代码,有很多我不想处理的依赖项。简而言之,可以通过传递命令行参数来运行其模块,例如: timesearch.py timesearch -r "subreddit1" -l "1466812800" -up "1498348800" 现在,我需要使用for循环多次运行这个工具,每次传递不同的参数值。当您运行该工具时,它还会将一些输出输出输出到命令行中——我还想截取并从
timesearch.py timesearch -r "subreddit1" -l "1466812800" -up "1498348800"
现在,我需要使用for循环多次运行这个工具,每次传递不同的参数值。当您运行该工具时,它还会将一些输出输出输出到命令行中——我还想截取并从python脚本中打印出来。最后,我需要确保在继续循环并再次运行该工具之前,timesearch工具的当前执行已完成
这里有一点需要注意——我确实需要确保timesearch是使用与使用for循环运行主脚本相同的环境执行的
我正在努力理解什么是最好的方法
如果我只是这样做,它不会起作用:
import os
#for loop will go here
os.system('python timesearch.py timesearch -r "ethereum" -l "1466812800" -up "1498348800"')
由于几个原因,它失败了——它没有使用我正在使用循环编写脚本的环境,它也没有捕获timesearch的打印输出
关于如何实现这一目标有什么建议吗
只是强调一下-我不能在timesearch中直接调用所需的函数,因为它会调用uu init uu来根据您传递的参数设置一些内容。我不会在os.system中调用python脚本。基本上您需要使用一个函数:mainsys.argv[1:]
.我们能确保初始化部分不会弄糟吗?我的意思是每次调用timesearch.main时都会调用init吗?你说的init部分是什么意思?它是功能体外部的部件吗?我相信您不需要每次调用main函数时都创建新的ArgumentParser。