Python 2.7 使用telnet在QNX提示符上执行二进制文件时确定等待时间

Python 2.7 使用telnet在QNX提示符上执行二进制文件时确定等待时间,python-2.7,sleep,telnet,qnx,Python 2.7,Sleep,Telnet,Qnx,我在QNX上使用sloginfo处理某些输出二进制文件,我使用ftp/telnet/vmware将二进制文件从我的机器上载到vmware实例,然后运行sloginfo命令。 问题在于,需要处理的二进制文件大小不一致(从50mb到200mb不等),处理每个文件所需的时间不同,因此无法确定所需的等待/睡眠时间 我需要知道sloginfo是否返回一个可以用作标志的值。我尝试使用tn.read_until(),但没有得到想要的结果 import os, sys, telnetlib, time from

我在QNX上使用sloginfo处理某些输出二进制文件,我使用ftp/telnet/vmware将二进制文件从我的机器上载到vmware实例,然后运行sloginfo命令。 问题在于,需要处理的二进制文件大小不一致(从50mb到200mb不等),处理每个文件所需的时间不同,因此无法确定所需的等待/睡眠时间

我需要知道sloginfo是否返回一个可以用作标志的值。我尝试使用tn.read_until(),但没有得到想要的结果

import os, sys, telnetlib, time
from ftplib import FTP

def upload(ftp, filed):
      ext = os.path.splitext(filed)[1]
      if ext in (".txt", ".htm", ".html"):
               ftp.storlines("STOR " + filed, open(filed))
      else:
               ftp.storbinary("STOR " + filed, open(filed, "rb"), 1024)

def gettext(ftp, filename, outfile=None):
  # fetch a text file
  if outfile is None:
      outfile = sys.stdout
  # use a lambda to add newlines to the lines read from the server
  ftp.retrlines("RETR " + filename, lambda s, w=outfile.write: w(s+"\n"))

if __name__ == '__main__':
dbfile = "LOG1"

nonpassive = False
remotesite = '192.168.0.128'
ftp_port = '21'
tel_port = '23'
password = 'root'

ftp = FTP()
ftp.connect(remotesite, ftp_port)

ftp.login('root','root')

print 'Uploading the Log file... Please wait...'
upload (ftp, dbfile)
print 'File Uploaded Successfully...'

tn = telnetlib.Telnet(remotesite, tel_port)

tn.read_until("login: ")

tn.write('root' + "\n")
if password:
    tn.write(password + "\n")

tn.write("sloginfo LOG1 >> LOG1.txt\n")

**#need to get more control on this sleep time**
time.sleep(300)
print 'Downloading text file...'
gettext(ftp, "LOG1.txt", open(r'LOG1.txt','wb'))


ftp.close()
tn.close()
# tn.write(“sloginfo LOG1>>LOG1.txt\n”)用tn.write(“sloginfo'+strdbfile+'>'>'+strdbfiletxt+”;echo Done!\n)修改了上述注释,解决了问题