Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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子流程调用winrs失败,路径带引号_Python_Path_Escaping_Quotes - Fatal编程技术网

从python子流程调用winrs失败,路径带引号

从python子流程调用winrs失败,路径带引号,python,path,escaping,quotes,Python,Path,Escaping,Quotes,我正在尝试使用subprocess.Popen()在远程计算机上执行Python脚本。这在大多数情况下都可以,但如果Python的路径包含空格,则会失败。用双引号包围路径没有任何帮助,无论我如何转义--winrs似乎用\“转义它们,并且路径在远程计算机上没有正确解释 这会产生类似于“\\\”C:\\progam files\\py\\python.exe\\\”的错误,该错误不被识别为内部或外部命令、可操作程序或批处理文件“ 我尝试了所有我能想到的标志组合,试图用^,\,“,”,`转义引号,但都

我正在尝试使用
subprocess.Popen()
在远程计算机上执行Python脚本。这在大多数情况下都可以,但如果Python的路径包含空格,则会失败。用双引号包围路径没有任何帮助,无论我如何转义--
winrs
似乎用
\“
转义它们,并且路径在远程计算机上没有正确解释

这会产生类似于
“\\\”C:\\progam files\\py\\python.exe\\\”的错误,该错误不被识别为内部或外部命令、可操作程序或批处理文件“

我尝试了所有我能想到的标志组合,试图用
^
\
”,
`
转义引号,但都没有用

非常感谢您的帮助。守则:

#lots of variations of this, all fail...
cmd = '"C:\\my py\\python.exe" --version'

def _winrs_spaces(cmd,host,user,pw,port=8080):
    winrs = 'winrs'
    args = [winrs,
           '-nop',
            '-r:http://%s:%s' % (host, port),
            '-u:%s\\%s' % (host,user),
            '-p:%s' % pw,
            cmd]

    proc = subprocess.Popen(args,stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell=True)
    stdoutData,stderrData = proc.communicate()
    ret = proc.returncode

    if stdoutData:
        print(stdoutData)

    if stderrData:
        print(stderrData)

    if ret:
        raise IOError('_spaces failed')

    return stdoutData
我应该说清楚——我在Windows上使用Popen执行WINRS,它在远程Windows主机上执行python.exe。