폴더의 모든 파일을 읽고 모든 내용을 하나의 단일 파일로 출력하는 프로그램을 작성하려고합니다. 파일은 .gz 확장자로 압축됩니다. 하나의 파일을 읽을 수는 있었지만 그 파일의 나머지 부분은 읽지 못했습니다.모든 .zip 파일에 포함 된 모든 텍스트 파일과 그 내용을 Python을 사용하여 텍스트 파일에 연결하십시오.
import glob, gzip, re
import pickle
filed = open('Logs.txt', 'w')
logfilenames = glob.glob('*.gz')
logformat = re.compile(r'^\S+ \S+ \S+ \[([\w:/]+\s[+\-]\d{4})\] "(\S+) (\S+) .*" (\d+) (\d+) "([^"]*)" "[^"]*"')
with gzip.GzipFile(logfilenames[0],'r') as f:
for i in glob.glob('*.gz'):
txtline = f.readline()
parsedline = logformat.match(txtline)
print "time={t} size={s} url={u}".format(t=parsedline.group(1), s=parsedline.group(5), u=parsedline.group(3))
pickle.dump(["time={t} size={s} url={u}".format(t=parsedline.group(1), s=parsedline.group(5), u=parsedline.group(3))],filed)
filed.close()
감사합니다. @eumiro 폴더 내의 모든 파일을 읽습니다. 이제는 각 파일에서 한 줄만 읽습니다. –
실행됩니다. AttributeError : 'NoneType'객체에 'group'속성이 없습니다. –
@AdamAdamou -'parsedline'에 대한 업데이트 된 버전 확인을 참조하십시오.이 경우'AttributeError '가 수정되어야합니다. 's. 이것은 당신의 regexp에 의해 일치하지 않는 라인을 의미합니다. – eumiro