我已经运行下面的python代码来编写一个新文件替换i / p文件中的字符串。它工作正常。但是o / p文件是用ANSI编码创建的,而输入文件是utf-8没有BOM。有人可以指导我如何创建与i / p文件具有相同属性的o / p文件吗?
提前致谢。
import codecs
f1=open(r"D:\Python Programs\New folder\ls.dat","rb")
f2=open(r"D:\Python Programs\New folder\OUTPUT.DAT","wb")
for line in f1:
s1=line[0:len(line)]
s3=s1[72:76].replace(str.encode("HKAG"),str.encode("PNAG"))
s4=s1[0:72]+s3+s1[76:]
f2.write(s4)
f1.close()
f2.close()
答案 0 :(得分:2)
使用open
包中的编码io
,而不是尝试自己推送。{/ p>
import io
from __future__ import unicode_literals
with io.open(r"D:\Python Programs\New folder\ls.dat", "r", encoding="utf-8") as f1:
with io.open(r"D:\Python Programs\New folder\OUTPUT.DAT", "w", encoding="utf-8") as f2:
for line in f1:
s1=line[0:len(line)]
s3=s1[72:76].replace(u"HKAG", u"PNAG")
s4=s1[0:72]+s3+s1[76:]
f2.write(s4)