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

如何在python脚本中执行这行代码,就好像它是命令行一样?

如何在python脚本中执行这行代码,就好像它是命令行一样?,python,jython,Python,Jython,我正在尝试编写一个脚本来复制运行该行: D:\...\bin>jython.bat D:\...\UploadTest.py 在python脚本中,就像通过cmd一样。我尝试了各种subprocess.Popen命令,但都不起作用(都没有找到Errno2文件)。我现在有 subprocess.Popen([r'D:\...\bin\jython.bat', r'D:\...\UploadTest.py']) 我还尝试了其他几种变体。我主要关心命令的.bat和.py部分之

我正在尝试编写一个脚本来复制运行该行:

    D:\...\bin>jython.bat D:\...\UploadTest.py
在python脚本中,就像通过cmd一样。我尝试了各种subprocess.Popen命令,但都不起作用(都没有找到Errno2文件)。我现在有

    subprocess.Popen([r'D:\...\bin\jython.bat', r'D:\...\UploadTest.py'])

我还尝试了其他几种变体。我主要关心命令的.bat和.py部分之间的空间。我是否应该使用r'',并在两者之间留一个空格?

在POpen调用中可能需要使用
shell=True
。但是请注意在中发现的关于潜在安全问题的警告。

我曾经尝试过类似的方法。让我知道这是否符合你的要求。这是参考资料


r'
'\\'
,不是两者都有。如果模块位于python路径上,您是否尝试过仅导入模块?除非有导入保护,否则导入和运行脚本是相同的。请使用os.path.join防止使用斜杠。这是一种多平台方法@物理学家:如果我想把.bat和.py作为一行运行,这行吗?有点像一个论点,我猜(我不擅长编码的发音)我在这里做一些假设。假设#1是有
Popen
调用的代码正在由jython运行。假设#2是
UploadTest.py
没有导入保护(如果uuu name\uuuuu=='uuuu main\uuuu',则表示
)。如果两者都为真,则将
subprocess.Popen…
替换为
import UploadTest.py
。如果
UploadTest.py
不在您的python路径上,请先执行
sys.path.append('D:\\folder\\containing\\the\\script')
。这是一条注释,不是答案。@mad这是试图回答问题。如果你知道这还不能回答问题,你能提供更多信息吗?找不到的错误文件表明问题并不存在……我怀疑一个从批处理脚本运行jython的人能否在bash中成功运行脚本。
#!/usr/bin/env python
from subprocess import call
from textwrap import dedent

call(dedent("""\
    #!/bin/bash
    echo Hello world
    """), shell=True)