Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.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_Windows_Bash_Shell_Ubuntu - Fatal编程技术网

从Python脚本如何运行其他Python脚本?

从Python脚本如何运行其他Python脚本?,python,windows,bash,shell,ubuntu,Python,Windows,Bash,Shell,Ubuntu,在我的主Python脚本中,我想调用另一个Python脚本来运行,如下所示: python2~/script\u location/my\u side\u script.py \--输入目录文件夹1/in\u文件夹\--输出目录文件夹1/out\u文件夹/\--图像扩展jpg \ 在我的Python脚本中,我如何才能做到这一点 我将同时使用Windows和Ubuntu,但主要是后者。理想情况下,您希望能够在这两个方面都进行操作。您可以在主文件中导入脚本 假设您有两个文件:myscript.py和

在我的主Python脚本中,我想调用另一个Python脚本来运行,如下所示:

python2~/script\u location/my\u side\u script.py \--输入目录文件夹1/in\u文件夹\--输出目录文件夹1/out\u文件夹/\--图像扩展jpg \

在我的Python脚本中,我如何才能做到这一点


我将同时使用Windows和Ubuntu,但主要是后者。理想情况下,您希望能够在这两个方面都进行操作。

您可以在主文件中导入脚本

假设您有两个文件:myscript.py和main.py

# myscript.py
print('this is my script!')
如果运行
main.py
,则输出为:

这是我的主文件
这是我的剧本
结束
编辑:如果您真的只想调用
python2 my\u side\u script.py--options asdf
,您可以使用
子流程
python模块:

import subprocess

stdout = subprocess.check_output(['python2', 'my_side_script.py', '--options', 'asdf'])

print(stdout)      # will print any output from your sidescript

您可以在主文件中导入脚本

假设您有两个文件:myscript.py和main.py

# myscript.py
print('this is my script!')
如果运行
main.py
,则输出为:

这是我的主文件
这是我的剧本
结束
编辑:如果您真的只想调用
python2 my\u side\u script.py--options asdf
,您可以使用
子流程
python模块:

import subprocess

stdout = subprocess.check_output(['python2', 'my_side_script.py', '--options', 'asdf'])

print(stdout)      # will print any output from your sidescript

使用。如果遇到困难,请发布另一个问题,展示您尝试过的代码。如果应该将其锁定到当前版本或虚拟环境中,请使用语法快速回答,谢谢运行
sys.executable
。否则,如果它应该使用其他版本或安装的Python,请在脚本中添加一个shebang,并在Unix中通过
chmod+x my_side_script.py
使其可执行。然后您可以直接运行它。在Windows中,您必须使用py.exe(如果安装了3.x)或python.exe显式运行脚本,或者使用
shell=True
让CMD使用.py文件关联运行脚本。py.exe启动器支持shebangs中的Windows路径以及虚拟Unix路径(例如
#!/usr/bin/python
)。如果遇到困难,请发布另一个问题,展示您尝试过的代码。如果应该将其锁定到当前版本或虚拟环境中,请使用语法快速回答,谢谢运行
sys.executable
。否则,如果它应该使用其他版本或安装的Python,请在脚本中添加一个shebang,并在Unix中通过
chmod+x my_side_script.py
使其可执行。然后您可以直接运行它。在Windows中,您必须使用py.exe(如果安装了3.x)或python.exe显式运行脚本,或者使用
shell=True
让CMD使用.py文件关联运行脚本。py.exe启动器支持shebangs中的Windows路径以及虚拟Unix路径(例如
#!/usr/bin/python
)。我希望从main.python脚本中直接调用“python2 my_side_script.py--options asdf”。如何做到这一点?请注意,OP也需要Windows支持,它没有
python2
命令。我不知道是否所有的Unix(Linux、BSD、macOS等)系统都有
python2
。无论如何,要在Windows中使用当前的Python解释器,请运行“Python.exe”(它位于应用程序目录中,始终首先选中该目录)。更一般地说,使用带有shebang的可执行脚本,在Windows上使用
shell=True
(还有希望,希望很大)。@eryksun听起来不错。我可以做一个快速的if检查,看看是否有windows。对,@eryksun。这个解决方案假设OP的路径被设置为包含他想要的python解释器,并且应该可以在windows和ubuntu上工作。如果OP不想将
python2
添加到路径中,将其脚本设置为可执行文件也是一个选项。@khuynh,子流程在Windows中使用
CreateProcess
。搜索可执行文件时,始终首先检查应用程序目录,因此,在Windows中始终可以找到当前解释器的python.exe(或者只是
python
,因为CreateProcess将为我们添加“.exe”),即使
PATH
为空。在Unix中,它依赖于路径,但Unix会将大多数命令转储到一个或两个目录中,因此这不是问题。我希望从main.py python脚本中直接调用“python2 my_side_script.py--options asdf”。如何做到这一点?请注意,OP也需要Windows支持,它没有
python2
命令。我不知道是否所有的Unix(Linux、BSD、macOS等)系统都有
python2
。无论如何,要在Windows中使用当前的Python解释器,请运行“Python.exe”(它位于应用程序目录中,始终首先选中该目录)。更一般地说,使用带有shebang的可执行脚本,在Windows上使用
shell=True
(还有希望,希望很大)。@eryksun听起来不错。我可以做一个快速的if检查,看看是否有windows。对,@eryksun。这个解决方案假设OP的路径被设置为包含他想要的python解释器,并且应该可以在windows和ubuntu上工作。如果OP不想将
python2
添加到路径中,将其脚本设置为可执行文件也是一个选项。@khuynh,子流程在Windows中使用
CreateProcess
。搜索可执行文件时,始终首先检查应用程序目录,因此,在Windows中始终可以找到当前解释器的python.exe(或者只是
python
,因为CreateProcess将为我们添加“.exe”),即使
PATH
为空。在Unix中,它依赖于路径,但Unix会将大多数命令转储到一个或两个目录中,因此这不是问题。