2016-10-11 4 views
0

후 특정 라인을 잡아. 여기 내 코드파이썬 : 나는 세 줄 <strong>버전</strong> 후 항상 변수 <strong>날짜</strong>을 정의하고자하는 텍스트 <br> 의 DF 전체가이 경기

with open(input_file1,'r') as f: 
    for i, line in enumerate(f): 
     if line.startswith('Version'): 
      version = line.strip() 
      date = line + 3 
      print(line,date) 

입니다하지만 날짜 변수 작동하지 않습니다와 나는 다음과 같은 오류가 발생합니다. 아무도 도와 줄 수 있니?

TypeError: Can't convert 'int' object to str implicitly 
+0

정확히 무엇을 하려는지 명확하지 않습니다. 'line'은'int'에 추가 할 수없는 문자열입니다. 3 –

+0

네, 변수 ** date **를 정의하고 싶습니다. 이것은 버전 이후 항상 3 줄입니다. 그 방법을 잘 모르겠습니다. – UserYmY

+0

enumerate()는 게으름입니다. 즉, 정확한 순간에 다른 행을 사용할 수 없음을 의미합니다. 그들은 필요할 때 "읽혀질 것"입니다. 다른 3 줄을 가져 오려면 먼저 전체 파일을로드 한 다음 슬라이스하거나 상태 메커니즘을 사용해야합니다. – TryToSolveItSimple

답변

1

line은 파일의 줄 내용입니다. i은 구문 분석되는 행의 점차적으로 증가하는 색인입니다. 따라서 라인 번호 i+3을 읽고 싶습니다. .readlines()으로 모든 줄을 메모리에 읽으면 쉽게 3 줄을 읽을 수 있습니다.
참고 파일이 매우 큰 경우에는 권장하지 않습니다!

with open(input_file1,'r') as f: 
    lines = f.readlines() 
    for i, line in enumerate(lines): 
     if line.startswith('Version'): 
      version = line.strip() 
      date = lines[i + 3].strip() 
      print(line,date) 
0

오류 메시지가 문자열에 숫자를 추가 할 수 없다는 것을 알려줍니다.

먼저 문자열을 datetime 객체로 변환해야합니다.이 객체에 원하는 객체를 추가 할 수 있습니다.

datetime documentation here을 확인하십시오. 인수의 두 번째 세트는 당신이 당신의 라인 변수를 통해 날짜 객체를 공급하는 날짜의 형식을 결정

import datetime 
Date = datetime.datetime.strptime(line, "%m/%d/%Y") 

: 귀하의 경우

, 당신은 뭔가를 시도 할 수 있습니다. 입력에 맞게이 비트 ("% m/% d/% Y")를 변경해야합니다.