>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 한자가 포함된 파일을 읽고 쓰고 마지막에 특정 문자를 추가하는 방법 소개

Python을 사용하여 한자가 포함된 파일을 읽고 쓰고 마지막에 특정 문자를 추가하는 방법 소개

高洛峰
高洛峰원래의
2017-03-20 13:07:401641검색

데이터 마이닝에서 원본 파일의 형식이 당황스러울 때가 많습니다. 매우 중요한 단계는 데이터 파일의 형식을 정리하는 것입니다.

최근 제가 맡은 프로젝트에서 제공되는 데이터 파일의 형식이 도저히 견딜 수 없을 정도로 pandas로는 열 수 없고, 항상 io 오류가 나오더군요. 파일의 데이터 행은 "로 끝났습니다. 그러나 다른 행은 누락되었으므로 필요성이 분명합니다. 각 행 끝에 ""가 있는지 확인하십시오. 그렇지 않은 경우 추가하십시오.

플래시백을 사용하는 것이 더 좋습니다. 결국 많은 사람들에게 필요한 것은 이유가 아니라 빠른 해결책입니다.

b = open('b_file.txt', w)
with open('a_file.txt', 'r') as lines:
    for line in lines:
        line = line.strip()
        if not line.endswith(r'"'):
            line += r'"'
        line += '\n'
        b.write(line)

b.close()
a.close()

전체 프로세스의 핵심은 다음과 같습니다.

line = line.strip()

예전에는 게으른 나머지 위 줄을 생략해서 직접 사용하다 보니 프로그램에서 각 줄이 ":

if not line.endswith(r'"')
한 번 씹어보고 다시 작성해 보세요. :

for line in open(data_path+'heheda.txt', 'r'):
    if not line[-2] == r'"':
        print line
        line = line[:-1] + r'"' + line[-1:]
        print line

이때 판단 조건은 line[-2] == r'"'이 아니므로 올바른 결과를 얻을 수 있습니다. 마지막 줄을 제외하고. 우리 모두 알고 있듯이, Windows 시스템에서는 파일의 캐리지 리턴 문자가 "rn"입니다. 따라서 캐리지 리턴 문자를 처리할 스트립()이 없으면 파일 끝에서 수동으로 1바이트 앞으로 이동해야 합니다. 각 줄의 끝을 판단합니다. 파일의 마지막 줄은 일반적으로 캐리지 리턴 문자로 끝나지 않습니다. 결국 줄을 줄 바꿈할 필요가 없습니다. 따라서 [-2]행은 마지막 한자의 중간에 위치하게 되고, xxxx는 xx"xx로 하드 표기되어 마지막 한자가 잘못 표시되게 됩니다.

위 내용은 Python을 사용하여 한자가 포함된 파일을 읽고 쓰고 마지막에 특정 문자를 추가하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.