Найти - Пользователи
Полная версия: Командная строка
Начало » Python для новичков » Командная строка
1 2
doza_and
Firik
А если экранировать пробелы?
Ну попробуйте. Правда так кавычек будет много. Меня давно задолбали эти пляски с бубном. У меня вообще нет путей с пробелами. :) В спецификации на ПО в самом начале пишем что это недопустимо.

Тем более что никакой реальной потребности в пробелах нет. Надо визуально отделить, сделайте подчеркивание. Я предпочитаю придерживаться четких правил. Одно из них: название файла - единое целое, как визуально так и с точки зрения программ (всякие там splt разбивают строку по пробелам и им нет никакого дела до нечетких правил с кавычками).

Допустимость пробелов в именах файлов (как windows так и unix) думаю повлекла такие потери рабочего времени, что можно было второй город такой как Москву построить. Сначала один человек вообще без всякой необходимости ставит пробел в имени файла, а потом миллионы в командной строке вынуждены кавычки расставлять, тильдочки обратные слеши, слеши надо экранировать кавычечками, кавычечки бывают разные, иногда и смысл у них разный, в программах надо изобретать хитроумные способы выделения пути, вплоть до проверки существования файла на диске. И все ради чего?
Maxem
doza_and
К сожалению не помогло, выдает ошибку без сообщения.
Firik
doza_andА если экранировать пробелы? Как пишут: "Для того, что бы командная оболочка правильно трактовала имена с пробелами необходимо их экранировать в кавычки, например так:
почему тогда работает это?
import os
command = r'"C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe"'
os.system(command)
Maxem
Не знаю почему, но именно так заработало
import os
command = r'"C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe" CREATEINFOBASE File=e:\\test8 /AddInList TEST8 /UseTemplate E:\\Share\\Python\\1C\\CFs\\Acc\\2\\1Cv8.cf'
os.system(command)
так тоже пашет
import os
command = r'"C:\Program Files (x86)\1cv8\common\1cestart.exe" CREATEINFOBASE File=e:\test9 /AddInList TEST9 /UseTemplate E:\Share\Python\1C\CFs\Acc\2\1Cv8.cf'
os.system(command)
doza_and
Maxem
К сожалению не помогло, выдает ошибку без сообщения.
Сообщение есть, просто команда выполняется без консоли… Легко посмотреть что было если перенаправить вывод
sp.check_call("some 1>1 2>2")
Если ошибка на стороне питона то будет traceback
Maxem
Не знаю почему
Разбирайтесь. Так оно в любой момент откажет и не почините.

На первый взгляд у вас
r'"C:\\Program Files (x86)"
сырые строки и двойные бекслеши. Значит в команду уходят удвоенные бекслеши Зачем?
Ваши тесты хаотически отличаются друг от друга.
  • File=e:\\test8 File=e:\\test4 зачем меняете имя теста?
  • File=e:\\test4; Вы уж определитесь по документации нужна точка с запятой или нет
  • “E:\\Share\\Python” По идее не влияет, но зачем то ставить кавычки то нет?
С эффектами надо по возможности разбираться отдельно. Если будете менять все подряд, то не сможете понять что влияет на работу.
Maxem
doza_and
File=e:\\test8 File=e:\\test4 зачем меняете имя теста?
ибо я параллельно проверял тоже самое в ком строке напрямую
doza_and
File=e:\\test4; Вы уж определитесь по документации нужна точка с запятой или нет
Убрал и ничего не поменялось
doza_and
“E:\\Share\\Python” По идее не влияет, но зачем то ставить кавычки то нет?
Кавычки в конце команды убрал и заработало, а стояли на случай пробелов в пути для универсальности расположения шаблонов

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB