Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 21, 2007 10:52:00

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как написать красиво subprocess.Popen(['cmd', 'cmd', '/C ', command]..

Уважаемые гуру питона
прочитав http://python.com.ua/forum/viewtopic.php?id=1437 написал процедуру

def func(command):
stdOutErr = subprocess.Popen(, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd='.\\').stdout
lines = stdOutErr.readlines()
for line in lines: print line


вызываю ее так
tmp_file='query.sql'
command = ‘osql.exe -E -i ’
func(command+tmp_file)
но вызов func(command+tmp_file) выдает ошибку так как command+tmp_file содержит пробелы. Как красиво переделать процедуру чтобы вызов Popen() содержал аргументы без пробелов? чтобы получить список аргументов для команды? пробовал
s = command+tmp_file
s.splite(' ‘)
но s.splite(’ ') не работает для пробела. Как сделать функцию
def func(command):
для команды osql.exe консоли?

P.S. мне нужно запустить osql.exe утилиту , скормить ей файл с sql запросом и получить выводимый текст с консоли
Спасибо всем принявшим участие.



Офлайн

#2 Дек. 21, 2007 11:16:09

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

как написать красиво subprocess.Popen(['cmd', 'cmd', '/C ', command]..

shlex.split
учтите только, что этот модуль не понимает юникодных строк.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version