我的python程序通過ssh獲取郵件日誌數據。當我嘗試去在每行它符合Python打開文件錯誤
with text as f:
for line in f:
try:
.... regex stuff....
我得到的錯誤:
Traceback (most recent call last):
File "xxxxxxxxxxxxxxxxxxxxxxxx", line 90, in <module>
start()
File "xxxxxxxxxxxxxxxxxxxxxxxx", line 64, in start
with text as f:
AttributeError: __exit__
這並不工作,這工作對我來說唯一的解決辦法如下。將文本保存爲文件並再次打開時。但該文件大約1.24 MB,這會不必要地降低程序速度。任何人都知道我可以如何擺脫額外的儲蓄?
....
stdin, stdout, stderr = ssh.exec_command('sudo cat /var/log/mailing.log')
text = ''.join(stdout.readlines())
text_file = open('mail.log', 'w')
text_file.write(text)
text_file.close()
ssh.close()
with open('mail.log') as f:
for line in f:
try:
.... regex stuff....
'text'是不是一個上下文管理器,你爲什麼試圖把它當作這樣?你原來的代碼中*是什麼*「text」? –
'ssh.exec_command()'從哪裏來? –
var'text'是文件'mailing.log'中的所有文本。我想我不明白上下文管理器的概念....'ssh.exec_command()'來自我使用的模塊paramiko。 – gulden