Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 6, 2010 00:16:16

jartasa
От:
Зарегистрирован: 2009-09-20
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод

Как перенаправить вывод скрипта в переменную ?
Имеется скрипт #1,нужно запустить из него скрипт #2 и сохранить всю выводимую информацию в переменной скрипта #1.



Офлайн

#2 Фев. 6, 2010 00:32:11

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Вывод

Смотри в сторону subprocess.



Офлайн

#3 Фев. 6, 2010 12:03:54

jartasa
От:
Зарегистрирован: 2009-09-20
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод

Под виндой он работать не будет ?



Офлайн

#4 Фев. 7, 2010 15:46:39

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Вывод

jartasa
Под виндой он работать не будет ?
будет работать под любой ос

Офлайн

#5 Фев. 7, 2010 20:28:55

jartasa
От:
Зарегистрирован: 2009-09-20
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод

Не хочет,можно пример ?



Офлайн

#6 Фев. 7, 2010 20:43:21

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод

import subprocess
subprocess.call('notepad')
ты б хоть показал чево он нехочет, ошибку мож какую гаварит



Офлайн

#7 Фев. 7, 2010 20:57:59

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Вывод

import os

con = os.popen("ping 127.0.0.1","r")
while 1:
line = con.readline()
print line,
if not line: break
на форуме полно примеров

Офлайн

#8 Фев. 7, 2010 21:11:16

jartasa
От:
Зарегистрирован: 2009-09-20
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод

Спасибо,немного поправил под себя:

import os
import platform
if platform.system() == "Windows":
req = "sr.py pp"
else:
req = "python sr.py pp"
con = os.popen(req,"r")
line = ""
while 1:
s = con.readline()
if not s:
break
else:
line+=s
print line



Отредактировано (Фев. 7, 2010 21:11:43)

Офлайн

#9 Фев. 8, 2010 21:19:07

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод

вместо

line = ""
while 1:
line+=s
рекомендуется

line = []
while 1:
line.append(s)
line = ''.join(line)
ибо быстрее



Офлайн

#10 Фев. 9, 2010 02:12:18

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Вывод

bazooka Ваше замечание справедливо для версий ниже 2.4 :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version