python带空格的路径_使用带空格的路径调用脚本

我有一个GUI,并且正在使用一个按钮来调用python脚本。

我python os.path.abspath(os.path.dirname(__file__))用来获取GUI脚本的目录,并进一步使用它来调用该目录的子文件夹中的脚本。

我使用以下方法获取GUI的路径:

sPfad = os.path.abspath(os.path.dirname(__file__))

print(sPfad)

T:\kst597\common\FB\Reporting\Web\Datenladung in SAP

我将在此处存储要调用的脚本的路径:

feld_script_man = sPfad+"\Felddaten\Konverter_Claims_MAN\Konverter_Felddaten_MAN.py"

我使用以下命令调用脚本:

os.system("python "+feld_script_man+" 1")

我得到的错误:

python: can't open file 'T:\kst597\common\FB\Reporting\Web\Datenladung': [Errno 2] No such file or directory

我还要确保路径存在:

print(os.path.exists(sPfad+"\Felddaten\Konverter_Claims_MAN\Konverter_Felddaten_MAN.py"))

True

我该怎么做才能解决此问题?

解决方案

是的,os.path.exists返回True,但是os.system随着命令行/参数解析的进行而不同:

os.system("python "+feld_script_man+" 1")

从字面上扩展为

os.system("python T:\kst597\common\FB\Reporting\Web\Datenladung in SAP\Felddaten\Konverter_Claims_MAN\Konverter_Felddaten_MAN.py 1")

如您所见,这里没有引号,因此python尝试打开第一个参数,T:\kst597\common\FB\Reporting\Web\Datenladung它失败了。

始终使用subprocess模块(os.system已弃用),并始终使用参数列表。

那应该工作:

subprocess.check_call(["python",sPfad+r"\Felddaten\Konverter_Claims_MAN\Konverter_Felddaten_MAN.py","1"])

你可能感兴趣的:(python带空格的路径)