2013-11-12 2 views
2

Доброго дня всехPython os.system запуск ех с цитатами и тиром аргументами

Я пытаюсь выполнить следующую команду, но получить различные ошибки х я знаю, у меня есть неправильный синтаксис или, возможно, используя неверный метод, будет любым будьте любезны, чтобы указать в правильном направлении.

Спасибо за любую помощь

фактическая внешняя программа путь, как в окнах командной строки или пакетного сценария будет.

"c:\Program Files\SQL Anywhere 11\Bin32\dbbackup.exe" -c "DSN=demo2suite;UID=dba;PWD=sql" -y "D:\Databases\demo2\LIVE\LIVE_BCK" 

Python V3.3

моя часть кода для этого мини-проекта (новичку) будет.

def BackupDatabase(): 
    try: 
     os.system('c://Program Files//SQL Anywhere 11//Bin32//dbbackup.exe -c "DSN=amos2suite;UID=dba;PWD=sql" -y "D://Databases//AMOS2//LIVE//LIVE_BCK"') 
    except OSError as e: 
     WriteLog("error",e) 
+0

Попробуйте вместо этого: 'C: \\ Program Files \\ SQL Anywhere 11 \\ Bin32 \\ dbbackup.exe' – karthikr

+1

Какие ошибки? Кроме того, не используйте os.system, используйте модуль подпроцесса. – geoffspear

+0

Или попробуйте следующее: 'r '" c: \ Program Files \ SQL Anywhere 11 \ Bin32 \ dbbackup.exe "-c" DSN = demo2suite ... "'' – cdarke

ответ

0

Лучше использовать модуль подпроцесса. Что-то вроде этого:

import subprocess 
subprocess.call(['c://Program Files//SQL Anywhere 11//Bin32//dbbackup.exe','-c', 
'"DSN=demo2suite;UID=dba;PWD=sql"', '-y','"D://Databases//AMOS2//LIVE//LIVE_BCK"']) 
+0

Спасибо всем за быстрые ответы. Ответ cdarke работал, но я буду изучать его с помощью подпроцесса, нужно исследовать его, поскольку я не знаю, что это на самом деле. – DeadZero

 Смежные вопросы

  • Нет связанных вопросов^_^