您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Python中取log的方式有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python中取log的方式有哪些”這篇文章吧。
1. 使用.logfile 方法
#!/usr/bin/env python import pexpect import sys host="146.11.85.xxx" user="inteuser" password="xxxx" command="ls -l" child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command)) child.expect('password:') child.sendline(password) childlog = open('promp.log',"ab") #文件屬性必須為二進制寫+,否則會報錯 child.logfile = childlog child.expect(pexpect.EOF)#如果子進程結束了,你再去child.expect(pattern)會報EOF錯誤,模塊提供了一種方法,child.expect(pexpect.EOF),不會報錯,如果子進程結束了返回0 childlog.close()
2.改變標準輸出sys.stdout的輸出對象,將log print到文件
#!/usr/bin/env python import pexpect import sys host="146.11.85.xxx" user="inteuser" password="xxxx" command="ls -l" child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command)) child.expect('password:') child.sendline(password) __console__ = sys.stdout #備份當前的標準輸出到命令行 childlog = open('promp.log',"w") #這里文件屬性不能為二進制,否則報錯TypeError: a bytes-like object is required, not 'str' sys.stdout = childlog #將childlog設為標準輸出的對像 child.expect(pexpect.EOF) print(child.before.decode()) #這里使用decode()函數,將輸出的目錄信息格式化 #child.before 這個值包含文本從頭一直到匹配的位置 childlog.close() sys.stdout = __console__ #還原標準輸出對象為命令行
以上是“Python中取log的方式有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。