format에 대한 parse, Jinja2에 대해서?
4978 단어 Python
parse() is the opposite of format()
format와 반대로template 문자열에서python 사전을 만드는 방법이 있다는 것을 알게 되었습니다.
여러 줄 일치
template.txt와result.txt,template가 있습니다.txt에서나는 이 부분을 사전으로 정리하고 싶다
그러나result.txt는 다른 표준 출력 등을 포함하는데 어느 정도에 비교적 크고 전체적으로template이다.txt로 설정하는 것은 매우 엄격하다
그렇지 않아도 날짜나 집행 시간의 기록처럼 집행에 따라 달라지는 줄이 있다(단, 모두 그렇게 중요한 것은 없다)
지금까지는 awk와sed 같은 조개 스크립트를 사용해서 만들었는데 매번 반수공으로 만들었어요. 좀 더 편하게 하고 싶어요.
해본 일
template.result 행txt의 각 줄에서 접으면서parse를 접고 모든 줄이 일치하는 부분을 결합시켜 추출한 인상
맵이든 Reduce든 None은 중도에 나가도 멈추지 않는다. 낭비지만 성능을 추구하지 않는다면
(쌍순환 중 회전, 이런 건 잘 못 쳐..)from parse import *
from parse import compile
def coerce_res(a, b):
try:
a.named.update(b.named)
a.fixed = a.fixed + b.fixed
return a
except:
return None
def match():
with open('template.txt', 'r') as ftemp, open('result.txt', 'r') as flog:
templines = ftemp.readlines()
# todo: remove leading & trailing blank lines from templines
loglines = flog.readlines()
for i in range(len(loglines) - len(templines) + 1):
a = map(lambda (x,y) : parse(x,y), zip(templines, loglines[i:]))
b = reduce(coerce_res, a)
if(b):
return b
print match()
# print fixed, named
요약은 보통 마지막에 하기 때문에 마지막에 하는 것이 비교적 빠르다
원하는 물건
parse는 format의 반변환이지만 진자2의 반변환 같은 게 있다면 사용자가 있을 것 같아요. 그런 게 있나요?
실행할 때의 로그 등에서 몇 줄을 정확하게 내야 할지 모르겠다.이런 걸로 기술하고, 리스트로 출력하는 등등.
실패할 때만 나타나는 로그입니다.적목으로 둘러싸기, 검측 실패 등등
(참고로 나는 진자를 사용한 적이 없어서 완전히 인상적으로 말했다.)
Reference
이 문제에 관하여(format에 대한 parse, Jinja2에 대해서?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/twitte_raru/items/a39f0a041c4ec6f01390
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
template.txt와result.txt,template가 있습니다.txt에서나는 이 부분을 사전으로 정리하고 싶다
그러나result.txt는 다른 표준 출력 등을 포함하는데 어느 정도에 비교적 크고 전체적으로template이다.txt로 설정하는 것은 매우 엄격하다
그렇지 않아도 날짜나 집행 시간의 기록처럼 집행에 따라 달라지는 줄이 있다(단, 모두 그렇게 중요한 것은 없다)
지금까지는 awk와sed 같은 조개 스크립트를 사용해서 만들었는데 매번 반수공으로 만들었어요. 좀 더 편하게 하고 싶어요.
해본 일
template.result 행txt의 각 줄에서 접으면서parse를 접고 모든 줄이 일치하는 부분을 결합시켜 추출한 인상
맵이든 Reduce든 None은 중도에 나가도 멈추지 않는다. 낭비지만 성능을 추구하지 않는다면
(쌍순환 중 회전, 이런 건 잘 못 쳐..)from parse import *
from parse import compile
def coerce_res(a, b):
try:
a.named.update(b.named)
a.fixed = a.fixed + b.fixed
return a
except:
return None
def match():
with open('template.txt', 'r') as ftemp, open('result.txt', 'r') as flog:
templines = ftemp.readlines()
# todo: remove leading & trailing blank lines from templines
loglines = flog.readlines()
for i in range(len(loglines) - len(templines) + 1):
a = map(lambda (x,y) : parse(x,y), zip(templines, loglines[i:]))
b = reduce(coerce_res, a)
if(b):
return b
print match()
# print fixed, named
요약은 보통 마지막에 하기 때문에 마지막에 하는 것이 비교적 빠르다
원하는 물건
parse는 format의 반변환이지만 진자2의 반변환 같은 게 있다면 사용자가 있을 것 같아요. 그런 게 있나요?
실행할 때의 로그 등에서 몇 줄을 정확하게 내야 할지 모르겠다.이런 걸로 기술하고, 리스트로 출력하는 등등.
실패할 때만 나타나는 로그입니다.적목으로 둘러싸기, 검측 실패 등등
(참고로 나는 진자를 사용한 적이 없어서 완전히 인상적으로 말했다.)
Reference
이 문제에 관하여(format에 대한 parse, Jinja2에 대해서?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/twitte_raru/items/a39f0a041c4ec6f01390
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from parse import *
from parse import compile
def coerce_res(a, b):
try:
a.named.update(b.named)
a.fixed = a.fixed + b.fixed
return a
except:
return None
def match():
with open('template.txt', 'r') as ftemp, open('result.txt', 'r') as flog:
templines = ftemp.readlines()
# todo: remove leading & trailing blank lines from templines
loglines = flog.readlines()
for i in range(len(loglines) - len(templines) + 1):
a = map(lambda (x,y) : parse(x,y), zip(templines, loglines[i:]))
b = reduce(coerce_res, a)
if(b):
return b
print match()
# print fixed, named
parse는 format의 반변환이지만 진자2의 반변환 같은 게 있다면 사용자가 있을 것 같아요. 그런 게 있나요?
실행할 때의 로그 등에서 몇 줄을 정확하게 내야 할지 모르겠다.이런 걸로 기술하고, 리스트로 출력하는 등등.
실패할 때만 나타나는 로그입니다.적목으로 둘러싸기, 검측 실패 등등
(참고로 나는 진자를 사용한 적이 없어서 완전히 인상적으로 말했다.)
Reference
이 문제에 관하여(format에 대한 parse, Jinja2에 대해서?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/twitte_raru/items/a39f0a041c4ec6f01390텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)