Python записать файл Wrong Strings - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь прочитать XML-файл, заменить текст, а затем записать поверх файла.

входной файл:

<text>A&Z</text>

Источник:

with open(file, 'rb') as f:
    newText=f.read().decode('utf-8', 'ignore')
    newText= newText.replace("&","and")
with open(relative_file_path+'/'+fileP, "wb") as f:
    print('nt',newText)
    f.write(newText.encode('utf-8'))

print nt:

nt <�t�e�x�t�>�A�and�Z�<�/�t�e�x�t�>�

при печати nt между каждым символом, кроме и., Стоит символ ll.

enter image description here

выходной файл:

<text>A湡dZ</text>

Я использую decode ('utf-8', 'ignore'), потому что в моем xml есть недопустимый начальный символ, и мне нужно прочитать файл.


решаемые

спасибо всем за помощь.

def stripped(stripstring):
    mpa = dict.fromkeys(range(32))
    stripstring =  stripstring.translate(mpa)
    return stripstring

with open(relative_file_path+'/'+fileP, mode='rb') as f:
    newText=f.read().decode('utf-8-sig', 'ignore')
    newText = stripped(newText)
    newText= newText.replace("&","and")

with open(relative_file_path+'/'+fileP, "w") as f:
    f.write(newText)
...