Python 使用子进程处理os.path.join路径中包含空格

Python 使用子进程处理os.path.join路径中包含空格,python,python-3.x,python-2.7,subprocess,Python,Python 3.x,Python 2.7,Subprocess,我目前正在使用os.path.join生成文件的路径,如下所示:- myFile = 'csvfile.csv' myPath = r'\\mydomain\12345\Original Format\' myFullPath = os.path.join(myPath, myFile) 这将产生:- \\mydomain\12345\Original Format\csvfile.csv 此变量工作正常,但稍后我需要通过子进程调用调用此变量,因为我希望运行Windows CLI.exe并将

我目前正在使用os.path.join生成文件的路径,如下所示:-

myFile = 'csvfile.csv'
myPath = r'\\mydomain\12345\Original Format\'
myFullPath = os.path.join(myPath, myFile)
这将产生:-

\\mydomain\12345\Original Format\csvfile.csv
此变量工作正常,但稍后我需要通过子进程调用调用此变量,因为我希望运行Windows CLI.exe并将变量myFullPath作为参数传递给Windows CLI。不幸的是,每当我运行subprocess.call()函数时,它都会失败,因为它无法处理目录路径中“原始格式”之间的空格

有什么建议可以帮助我处理这个问题,这样子进程调用就可以处理路径中的空间了吗

我的子流程调用如下所示:-

command = r"C:/Program Files/myExe.exe -user %s -case %s -tags %s" % (username, path, tags)
subprocess.call(command)

谢谢

我建议您使用操作系统 如果您正在使用windows,则需要“scape”您需要执行的每个
\

import os
remote_dir = os.path.join("\\\\","mydomain", "12345","Original Format")
fullpath = os.path.join(remote_dir, "csvfile.csv")

最好使用正确的操作系统连接。如果有空格或其他意外字符,
os.path.join()
将确保返回正确的分隔符。

@zondo我已经用subprocess.call编辑了我的原始问题。我没有使用列表。您可以将其更改为
subprocess.call([“C:/Program Files/myExe.exe”,“-user”,username,“-case”,path,“-tags”,tags])
Perfect-谢谢@zondoGiven它以“\\”开头,我假设它是windows的网络资源。是吗?是的@jalazbe这是一个网络资源