파이썬에서 회귀 스크립트를 작성하여 우리 도서관이 모든 단위 테스트를 통과했는지 확인합니다. 모든 출력을 .txt
파일에 쓰고 있는데이 파일의 형식은 다음과 같습니다. reg_results_yyyy_mm_dd_hh_mm_ss_rrrrrr_ssssss.txt
여기서 yyyy_mm_dd_hh_mm_ss
은 년, 월, 일, 월, 일, 일, 초, 일 rrrrrr
은 우리 도서관의 개정 번호입니다. ssssss
은 PASSED 또는 FAILED입니다.어떻게 파이썬이나 리눅스에서 특정 단어 다음에 텍스트 파일에서 정보를 추출합니까?
로그 파일에 "Checked out revision 129"가 표시되며, 여기서 129는 변경되는 번호입니다. "개정"다음에 나오는 숫자를 추출해야합니다. 로그 파일의 끝에 "PASSED Unit Tests"또는 "FAILED Unit Tests"라고 표시되고 PASSED/FAILED를 추출해야합니다.
적절하게 로그 파일의 이름을 바꾸려면 로그 파일을 검색하고 개정 번호를 추출하고 로그 파일에서 PASSED/FAILED하는 방법을 알고 싶습니다.
나는 gre30 리눅스 명령을 grep로 들여다 보았지만 구체적인 정보를 얻는 방법을 모르겠다.
당신은 정규식을 사용할 수 있습니다
합니까 (\ D +) 숫자 일치를, \ S +는 공간과 일치 (\ + w) 단어가 일치하는
sed
관용구 또는 두 가지를 인식? 그런 다음, 그룹을 인쇄 할 때, (1)은 (\ d +)에 상관되고 (2)는 (\ w +)에 상관이 있습니까? 코드를 이해하려고합니다. 그래도이게 내가 원하는거야. 감사. – amccormick예, 정규식과 그룹을 올바르게 해석했습니다. cl 툴로 Perl이나 Python을 쓰고 싶다면 grep이나 Sed와 비슷한 regex를 사용할 수 있습니다. 파이썬에서're.match'는 문자열의 시작 부분에서만 일치한다는 것을주의하십시오; 're.search'를 사용하여 문자열 전체를 검색하십시오. – dawg