2013-06-07 5 views
0

나는 실행 중에 전달되는 여러 매개 변수를 기반으로 자동화 된 테스트를 초기화하는 python 스크립트를 작성하려고합니다. 매개 변수 중 하나는 정수 대신 readline() 호출에 사용되는 텍스트 파일에서 장치 선택 컨트롤로 사용됩니다.정수 대신 문자열을 사용하는 Readline 함수

어떻게 사용하는 동안 오류가 발생하여 w/o 다음과 같은 작업을 수행합니다

with open('file.txt') as x: 
    head1 = x.readline('APS5000[]') 
    linenumber = 3 
    if not APU == head1: 
      for line in x.readline(linenumber): 
       print line 
       linenumber += 1 
       if x.readline(linenumber) is ('====================================================') 
         linenumber = 14 
       break 

답변

1

나는 당신이 실제로 기대했는데 어떤 행동 모르겠지만, 코드에 오류가 있습니다 :

  • readlines()의 인수는 버퍼 크기에 대한 힌트로서 바이트 수 여야합니다. 이것은 당신이 여기서 예상했던 것과 거의 같을 것입니다.
  • readline()에 대한 인수로 사용 된 문자열이 완전히 잘못되었습니다. 그 값까지 줄을 읽으려고 했습니까?
  • is을 사용하여 문자열을 비교할 수 없습니다. 대신 ==을 사용하십시오.

코드를 for line in x:의 단일 루프로 다시 작성하십시오. 한 번에 한 줄씩 파일을 줄 것입니다. 필요에 따라 어떤 상태 변수를 유지하여 현재 어떤 라인이 있는지 그리고 지금까지 무엇을 보았는지 확인하십시오.

또는 전체 파일을 contents = x.readlines()이라는 배열로 읽고 거기에서 처리 할 수 ​​있습니다.

+0

if 문은 읽은 행이 모두 문자열인지 확인한 다음 올바른 경우 다음 코드 행이 맞는지 확인합니다. 그렇지 않으면 루프가 작업을 중단시킵니다 – mjsummers

관련 문제