我在Linux上並希望將字符串(以utf-8)寫入txt文件。我嘗試了很多方法,但我總是得到一個錯誤:python-寫入文件(忽略非ascii字符)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position in position 36: ordinal not in range(128)
有什麼辦法,如何寫文件只有ascii字符?並忽略非ASCII字符。 我的代碼:
# -*- coding: UTF-8-*-
import os
import sys
def __init__(self, dirname, speaker, file, exportFile):
text_file = open(exportFile, "a")
text_file.write(speaker.encode("utf-8"))
text_file.write(file.encode("utf-8"))
text_file.close()
謝謝。
Strip_non-ascii_ characters before writing? – devnull
你試過了嗎?speaker.encode('utf-8',errors ='ignore')'?但是我相信你做錯了別的事情,因爲你*不應該首先出現這個錯誤。你能告訴我們什麼是「揚聲器」和「文件」?另外,如果要將二進制數據寫入文件,則應該以二進制模式打開文件:open(export_file,'ab')'。 – Bakuriu