I';我试图用Python打开一个程序。第二个参数需要删除引号

I';我试图用Python打开一个程序。第二个参数需要删除引号,python,Python,我试图用python打开一个程序,arg1需要删除引号 Python代码: strt_rpt ='C:\\PROGRAM FILES\\GOM\\2018\\BIN\\gom_inspect' arg1 = 'pro -eval' process = subprocess.Popen([strt_rpt, arg1.replace("''", '')], shell = True) 我的问题是如何去掉arg1中的引号。替换“无效” 多谢各位 当您使用print函数在

我试图用python打开一个程序,arg1需要删除引号

Python代码:

strt_rpt ='C:\\PROGRAM FILES\\GOM\\2018\\BIN\\gom_inspect'  
arg1 = 'pro -eval'
process = subprocess.Popen([strt_rpt, arg1.replace("''", '')], shell = True)            
我的问题是如何去掉arg1中的引号。替换“无效”

多谢各位
当您使用
print
函数在屏幕上打印时,python总是添加引号来告诉您正在打印字符串,以获取任何帮助。但是如果在代码中有
arg1='pro-eval'
字符串本身不包含任何引号。你不需要更换任何东西

但请尝试像这样使用子流程:

arg1 = 'pro'
arg2 = '-eval'
process = subprocess.Popen([strt_rpt, arg1, arg2])
我认为您的程序很可能将
pro-eval
作为一个参数接收,而它们应该是两个独立的参数。参数列表的每个元素只能是一个参数。所以不要在它们里面放空格,除非你真的想用空格传递一个参数

此外,我认为在这种情况下不需要将shell参数设置为True。从:

如果shell为True,则指定的命令将通过 壳如果您主要是将Python用于 它在大多数系统外壳上提供了增强的控制流,并且仍然需要 方便访问其他外壳功能,如外壳管道, 文件名通配符、环境变量扩展和~ 到用户的主目录


这似乎不是你的情况。这样,您也可以避免在
strt\u rpt

中逃避反斜杠。您的问题是什么?C:是我正在编写代码的程序在我的计算机上的位置。是计算机上的位置,程序将在那里使用。我的python代码在arg1上出错,当我通过arg1时,需要去掉引号。亲爱的Nick,你的问题不清楚。请考虑编辑你的问题,包括你的目标是什么,你做了什么尝试,以及你得到了什么错误。我试图执行这个命令:(c:\程序文件\GOM \ 2018 \ bin \ GOMYCHATE PRO-EVAY)和PRE-EVAY不能有任何引号。谢谢,不客气。如果有帮助的话,你可以考虑接受这个答案。