我正在尝试使用同一文件夹中所有* .txt文件中的用户输入字符串替换“ FullName”。 * .txt文件似乎是Unicode(当我单击“文件”->“另存为”时显示为Unicode)。
每次我运行代码时,它都会用一些错误的符号(例如,许多ഀഀ和ഀ䘀甀氀氀一愀洀攀ഀ䨀漀恋伥漀猀)替换“ FullName”碗琀碗漀渀ഀ䐀㨀ꀀ㌀ꀀ㠀㠀)。
当我制作一个随机的* .txt文件并将其保存为ANSI或将任何原始文件保存为ANSI时,替换就可以了。
有人可以帮助我了解这里出了什么问题吗?
fullName = input('Full Name: ')
import glob
fullName = input('Full Name: ')
for f in glob.glob('*.txt'):
with open(f, 'r') as inputfile:
newText = inputfile.read().replace('FullName', fullName)
with open(f, 'w') as outputfile:
outputfile.write(newText)
Unicode编码:
更换后的后果
答案 0 :(得分:0)
Windows默认将Unicode保存为UTF-16,因此请尝试使用encoding='utf-16'
打开文件:
for f in glob.glob('*.txt'):
with open(f, 'r', encoding='utf-16') as inputfile:
newText = inputfile.read().replace('FullName', fullName)
with open(f, 'w', encoding='utf-16') as outputfile:
outputfile.write(newText)