python

2016-03-23 13 views
1

'da read_very_eager() öğesini kısıtlayın veya sınırlayın Telnet lib kullanarak telnet oturumunda linux çalıştıran bir uzak makinede birkaç komut çalıştırıyorum. Ben aşağıdaki verince:python

tn.write("<binary_name>") 
time.sleep(10) 
tn.write("cat <path_of_output_file>") 
rd_buf=tn.read_very_eager() 
print(rd_buf) 

o ikili çıkış ve cat komutunun çıktısını verir. Ben sadece cat komutunun çıktısını istiyorum. Ben sadece read_very_eager ve read_until ile çalıştım. Arabellek değişkenimi yalnızca cat komutunun içeriğini tutmak için nasıl kısıtlarım?

cevap

0

read_until() ve read_very_eager() ile uğraştıktan sonra, sonunda bunu çözdüm. Yapmam gereken tek şey şuydu: 1 satır (junk=tn.read_very_eager()) eklenmesiyle

tn.write("<binary_name>") 
time.sleep(10) 
junk=tn.read_very_eager() 
tn.write("cat <path_of_output_file>") 
rd_buf=tn.read_very_eager() 
print(rd_buf) 

, ne istediğini elde etmek mümkün.

Telnet.read_very_eager()

I/O (istekli) engellemeden olabilir herşeyi okuyun: piton resmi belge aktaran.

Bunun bir işaret etti ve komut zorla "okuma" durdurmak yaptı. Ve amacına hizmet eden her şeyi tekrar okumaya başlar.