Python 2.7 使用telnet在QNX提示符上执行二进制文件时确定等待时间
我在QNX上使用sloginfo处理某些输出二进制文件,我使用ftp/telnet/vmware将二进制文件从我的机器上载到vmware实例,然后运行sloginfo命令。 问题在于,需要处理的二进制文件大小不一致(从50mb到200mb不等),处理每个文件所需的时间不同,因此无法确定所需的等待/睡眠时间 我需要知道sloginfo是否返回一个可以用作标志的值。我尝试使用tn.read_until(),但没有得到想要的结果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
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)修改了上述注释,解决了问题