Работа с путем os.path.join с пробелом в нем с использованием подпроцесса - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время я использую os.path.join для генерации пути к файлу, который выглядит следующим образом: -

myFile = 'csvfile.csv'
myPath = r'\\mydomain\12345\Original Format\'
myFullPath = os.path.join(myPath, myFile)

Это выводит: -

\\mydomain\12345\Original Format\csvfile.csv

Эта переменнаяработает нормально, однако мне нужно затем вызвать его из вызова подпроцесса, поскольку я хочу запустить .exe-файл Windows CLI и передать свою переменную myFullPath в качестве параметра в CLI Windows.К сожалению, всякий раз, когда я запускаю функцию subprocess.call (), она перестает работать, так как не может обработать пространство между «Исходным форматом» в пути к каталогу.

Любые предложения о том, как я могу это сделать, чтобыВызов подпроцесса может обрабатывать пространство в пути?

Мой вызов подпроцесса ниже: -

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

Спасибо

1 Ответ

0 голосов
/ 05 декабря 2018

Я рекомендую вам использовать os. Если вы используете Windows, вам нужно «scape» каждый \, вам нужно сделать

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

Лучше использовать правильное объединение операционной системы.В случае наличия пробелов или других неожиданных символов os.path.join() обязательно вернет правильное разделение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...