[英]Run a python script from another python script and pass variables to it
还有一些类似的问题。 但是,或者答案没有涵盖对我来说很关键的特定部分,或者我只是听不懂。 所以,让我解释一下我的问题:
我想创建3个python脚本。 我们称它们为p1.py,p2.py和p3.py。 当我运行p1时,它将收集时间信息
import datetime
captureTime = datetime.datetime.now()
然后它将更改日期的格式并将其与变量一起存储,如下所示
folderName = captureTime.strftime('%Y-%m-%d-%H-%M-%S')
然后,它将创建一个由字符串“ folderName”的值命名的文件夹。
在这部分之后,我不知道该怎么办。
p1应该运行p2和p3,并将'folderName'的值传递给它们,然后停止; 并且,p2和p3应该在以“ folderName”值命名的文件夹下创建文件。
谢谢。
在p1中:
import p2
args = ['foo', bar]
p2.main(args)
在p2中:
def main(args):
do_whatever()
if __name__ == '__main__':
main()
p3将具有与p2类似的结构
您可以利用子流程模块来执行外部命令。 最好先从简单得多的命令入手,以掌握所有内容。 下面是一个虚拟的示例:
import subprocess
from subprocess import PIPE
def main():
process = subprocess.Popen('echo %USERNAME%', stdout=PIPE, shell=True)
username = process.communicate()[0]
print username #prints the username of the account you're logged in as
process = subprocess.call('python py1.py --help', shell=True)
process = subprocess.call('python py2.py --help', shell=True)
process = subprocess.call('python py3.py --help', shell=True)
if __name__ == '__main__':
main()
这将从echo %USERNAME%
获取输出并将其存储。 它还将运行您的三个脚本,但对它们不起作用。 您可以如第一个示例所示,将脚本的输出PIPE
并将其反馈回您的下一个脚本。
这不是执行此操作的唯一方法(您可以导入其他脚本)。 如果您希望有一个外部主脚本来控制和操纵所有子脚本,那就很好了。
如果您尚未检查我们的argparse ,则应该。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.