2016-06-08 2 views
0

저는 입력 파일과 행을 읽고, 일부 작업을 수행하고 출력 파일에 저장합니다.Python3 텍스트에서 인쇄 할 수없는 문자를 제거합니다.

출력 파일을 메모장에서 열면 아무런 문제가 없습니다. 출력 파일을 notepad ++ (UTF8 인코딩 형식 또는 ANSI 형식)로 열면 인쇄 할 수없는 문자가 있습니다. 예 : SOH (머리글 시작)

인쇄 할 수없는 문자는 어떻게 제거 할 수 있습니까?

SOH의 바이트 코드는 01입니다. string.remove(0x01)과 같은 방법이 있습니까 ??

+0

여전히 메모장 파일에 있습니다. 인쇄 할 수없는 문자는 인쇄되지 않습니다. P –

+0

입력 파일에도 인쇄 할 수없는 문자가 있습니까? 그렇지 않다면 실제로 스크립트를 수정하여 처음부터 불필요한 문자를 생성하지 않도록 할 수 있습니다. – Kritzefitz

+0

예 인쇄 할 수없는 문자도 입력 파일에 있습니다. – abidinberkay

답변

0

각 문자에 str.isprintable() 메서드를 호출하여 텍스트를 필터링 할 수 있습니다. 탭과 줄 바꿈과 같은 보존 할 수있는 문자는 인쇄 할 수없는 것으로 간주되므로주의해야합니다.

for line in input_file: 
    # do your processing to the line here 

    line = "".join(c for c in line if c.isprintable() or c in "\n\t") # filter line 
    output_file.write(line) 

당신이 원한다면 당신은 또한 다른 처리하기 전에 필터링을 할 아마 수 :

여기에 몇 가지 빠른 (테스트되지 않은) 코드입니다.

관련 문제