使用子进程处理带有空格的os.path.join路径

时间:2018-12-04 12:31:31

标签: 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并将变量myFullPath作为参数传递给Windows CLI。不幸的是,每当我运行subprocess.call()函数时,它都会失败,因为它无法处理目录路径中“原始格式”之间的空间。

有人建议我如何处理此问题,以便Subprocess调用可以处理路径中的空间吗?

我的子流程调用如下:-

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

谢谢

1 个答案:

答案 0 :(得分:0)

我建议您使用os 如果您使用的是Windows,则需要“浏览”每个\

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

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