这是一个将unicode符号从文件x.input更改为它们各自实体的程序,输出应放在y.output中。但是,该程序不会执行此操作,而只会创建该文件的副本。
我有Python27和35都显示了此问题,并且平台是Win 7。
我要去哪里错了?请帮忙。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#import io
f1 = open('x.input').read()
f2 = open('y.output','w')
for line in f1:
x = line.replace('“', '“')
f2.write(x)
#f1.close()
f2.close()
整个程序的屏幕快照:带有双引号的实际程序正在引起问题
这个问题有点棘手,您在文档中有一个复制/粘贴错误,其中的字符“(ord 226)不是您所期望的”(ord 34)(请注意,它们是相似的,但略有不同)。从Word文档复制了此示例。
只需用正确的字符替换此字符,您的程序就可以运行。结果应该是(从此处复制/粘贴,以便获得正确的字符):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#import io
f1 = open('x.input').read()
f2 = open('y.output','w')
for line in f1:
x = line.replace(ord(34), '“')
f2.write(x)
f1.close()
f2.close()
即使不需要(文件将在程序完成时关闭),因为良好的公民也会关闭f1。
注意:为使解决方案更加清晰而进行了编辑,请查看如何更改替换行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句