2012-01-05 2 views
0

로그 파일에서 단어가 포함 된 줄을 인쇄하려고합니다.Python의 로그 파일에서 특정 줄을 읽거나 쓰는 데 문제가 발생했습니다.

저는 몇 가지 연구를 해본 결과 아직까지 이것을 구현하는 좋은 방법을 찾지 못했습니다.

나는 현재이 코드를 가지고이 문제를보고 한 후

FileInput = open(FILE, "r", encoding='utf-8') 

for line in FileInput: 
    if "DATA: " in line: 
     print line 

대부분의 사람들이 그 일을하는 방법이있을 것 같다 그러나 나는 다음과 같은 오류가 발생합니다 : 형식 오류를 : 유니 코드로 강요 : 필요 문자열이나 버퍼를 NoneType 발견 .

"DATA :"에서 길이를 설정하고 줄의 끝이 0A 인 16 진수로 끝납니다.

+0

"0A의 16 진수 값"- 줄 바꿈을 의미합니까? 그리고이 Python 2 또는 Python 3입니까? –

+0

새 행과 동일합니다. 16 진수 또는 줄 단위로 데이터를 조각하는 가장 좋은 방법은 무엇인지 알 수 없었습니다. 그것은 파이썬 3입니다. –

+0

파이썬 3에서는'print (line)'을 말하고 있어야합니다. 그렇지 않으면'SyntaxError'가 생깁니다. 이것이 정확한 코드가 아니라는 느낌을 받았습니다. –

답변

1

중 하나를 우리가 볼 수있는 (적절한 문자열을 포함하지 않는 FILE 변수 그 값은? 파일을 열고 여기에 결과를 붙여 넣기 전에 "인쇄 (FILE)"할 수 있습니까?) 또는 파일이 utf-8과 호환되는 방식으로 인코딩되지 않았습니다. 좋은 편집기 (예 : jEdit 또는 Notepad ++)에서 열어보고 편집기에서 알려준 내용을 확인한 다음 utf 대신 해당 인코딩을 지정하십시오.

+0

변수가 포함 된 SQLite 파일 내에 손상이있었습니다. 도와 줘서 고마워. –

+0

감사합니다. Zeki, 공식적으로 대답을 수락 할 수 있습니까? 답의 왼쪽에있는 체크 박스 개요를 클릭하기 만하면됩니다. :) 건배 –

0

당신이 시도 여기 좀 Unicode HOWTO

+0

도움을 주셔서 감사합니다 RanRag하지만 불행히도 나는 여전히 같은 오류 메시지가 나타납니다. –

+0

코드에서'if line is None None'을 확인해보십시오. – RanRag

+0

여전히 같은 오류입니다. 계속 도움을 주셔서 감사합니다. –

0

을 가지고

import codecs 
f = codecs.open(FILE, encoding='utf-8', mode='r') 

를 사용해야하는 것이 :

FileInput = open(FILE, "r") 
for line in FileInput: 
    if "DATA: " in line: 
     print(line) 
+0

Ive는 가능한 모든 변형을 시도했지만 여전히 FileInput 섹션에서 같은 오류가 발생합니다. 도움 주셔서 감사합니다. –

관련 문제