Python 3.x 运行包含撇号的子流程路径参数

Python 3.x 运行包含撇号的子流程路径参数,python-3.x,subprocess,Python 3.x,Subprocess,假设我有一个a.exe不是我的,我不能修改它。它需要一个.b文件,它告诉我们一些关于这个文件的数据。 如果文件名在路径中有空格,我必须在其周围加上撇号。 问题是: import subprocess import sys filepath = sys.argv[1] # it works fine if I have no space in the path (same with .run) subprocess.check_output(['A.exe', filepath]) # I'

假设我有一个a.exe不是我的,我不能修改它。它需要一个.b文件,它告诉我们一些关于这个文件的数据。 如果文件名在路径中有空格,我必须在其周围加上撇号。 问题是:

import subprocess
import sys

filepath = sys.argv[1]

# it works fine if I have no space in the path (same with .run)
subprocess.check_output(['A.exe', filepath])

# I'd expect it to work with paths having and not having space in them, but it doesn't (same with .run)
subprocess.check_output(['A.exe', f'"{filepath}"'])
问题的根源是,由于某种原因,当filepath字符串进入check_输出时,-es double。所以
C:\Dir\b.b变成了C:\\Dir\\b.b
而A.exe无法处理这个问题。有没有办法让我的字符串不转换?有什么问题吗