我正在尝试用 python 读取压缩文件。我只想读取名称中带有“调试”的文件,并且只打印其中包含 BROKER_LOGON 的行。它以某种方式不会逐行读取,而是打印其中包含 BROKER_LOGON 的整个文件。请告诉我是否有办法从压缩文件中逐行读取。
import os
import zipfile
import re
def main():
try:
root = zipfile.ZipFile("C:/Documents and Settings/Desktop/20110526-1708-server.zip", "r")
except:
root = "."
for name in root.namelist():
i = name.find("debug")
if i>0:
line = root.read(name).find("BROKER_LOGON")
if line >0:
print line
if __name__== "__main__":
main()
最佳答案
你可以直接在压缩文件中打开()一个文件
尝试这样的事情:
try:
root = zipfile.ZipFile("C:/Documents and Settings/Desktop/20110526-1708-server.zip", "r")
except:
root = "."
for name in root.namelist():
i = name.find("debug")
if i>0:
lines = root.open(name).readlines()
for line in lines:
if line.find("BROKER_LOGON") > 0:
print line
您可以对从 readlines() 返回的行列表做任何您想做的事情。
关于python - 从python中的压缩文件中逐行读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6428864/