파일에서 읽기, 문자열 처리 및 UTF-8 파일에 저장하는 데 문제가 있습니다.
다음은 코드입니다.
try:
filehandle = open(filename,"r")
except:
print("Could not open file " + filename)
quit()
text = filehandle.read()
filehandle.close()
그런 다음 가변 텍스트를 처리합니다.
그리고
try:
writer = open(output,"w")
except:
print("Could not open file " + output)
quit()
#data = text.decode("iso 8859-15")
#writer.write(data.encode("UTF-8"))
writer.write(text)
writer.close()
이것은 파일을 완벽하게 출력하지만 내 편집기에 따르면 iso 8859-15에서 그렇게합니다. 같은 편집기가 입력 파일 (변수 파일 이름에 있음)을 UTF-8로 인식하기 때문에 왜 이런 일이 발생했는지 모르겠습니다. 내 연구에 따르면 주석이 달린 줄은 문제를 해결해야합니다. 그러나 그 줄을 사용할 때 결과 파일은 주로 텍스트가 스페인어로 물결표가있는 단어 인 특수 문자로 횡설수설합니다. 난 정말 당황해서 도움을 주시면 감사하겠습니다 ….
답변
codecs
모듈을 사용하여 프로그램의 I / O 경계에서 유니 코드와의 텍스트를 처리합니다 .
import codecs
with codecs.open(filename, 'r', encoding='utf8') as f:
text = f.read()
# process Unicode text
with codecs.open(filename, 'w', encoding='utf8') as f:
f.write(text)
편집 : 이 io
모듈은 이제 코덱 대신 권장되며 Python 3의 open
구문 과 호환되며 Python 3을 사용하는 open
경우 Python 2 호환성이 필요하지 않은 경우 에만 사용할 수 있습니다 .
import io
with io.open(filename, 'r', encoding='utf8') as f:
text = f.read()
# process Unicode text
with io.open(filename, 'w', encoding='utf8') as f:
f.write(text)
답변
아래 코드로도 통과 할 수 있습니다.
file=open(completefilepath,'r',encoding='utf8',errors="ignore")
file.read()
답변
open을 사용하여 그렇게 할 수 없습니다. 코덱을 사용하십시오.
오픈 내장 함수를 사용하여 파이썬에서 파일을 열 때 항상 파일을 ascii로 읽고 쓸 것입니다. utf-8로 작성하려면 다음을 시도하십시오.
import codecs
file = codecs.open('data.txt','w','utf-8')