python 3.6 에서 GB 2312 형식 XML 파일 읽 기

1188 단어 python 학습
xml.dom.minidom 의 parse 방법 으로 xml 파일 을 직접 읽 는 것 이 목적 입 니 다.
그러나 제 데이터 세트 에는 utf-8 형식 외 에 gb 2312 형식 도 있 습 니 다.parse 방법 은 gb 2312 형식 을 지원 하지 않 기 때문에 인터넷 에서 utf-8 형식 xml 를 gb 2312 형식 xml 로 바 꾸 는 방법 을 많이 찾 았 습 니 다.제 통합 과 테스트 를 통 해 제 방법 을 공유 하 겠 습 니 다.
tips:
1.XML 의 encoding 머리 를 직접 수정 하 는 것 은 잘못 되 었 습 니 다.
2.직접 바 이 너 리 방식 으로 읽 고 utf-8 방식 으로 encode 를 사용 해도 안 됩 니 다.
3.위의 두 절 차 를 결합 하여 먼저 encoding 머리 를 수정 한 다음 에 encode 해 야 한다.
4.python 3.6 에 str.decode("gb 2312").encode("utf-8")방식 을 사용 할 수 없습니다.attribute 오류 가 발생 할 수 있 습 니 다.py3 에 문자열 은 decode 속성 이 없습니다.
def replaceXmlEncoding(filepath):
    try:
        f = open(filepath, mode='r')
        content = f.read()#      
        content = re.sub("GB2312", "UTF-8", content)#  encoding 
        f.close()
        f = open(filepath, 'w')#  
        f.write(content)
        f.close()
        f = codecs.open(filepath, 'rb', 'mbcs')#       
        text = f.read().encode("utf-8")#  utf-8    
        f.close
        f = open(filepath, 'wb')#       
        f.write(text)
        f.close()
    except:
        return

좋은 웹페이지 즐겨찾기