Python中文
首页
教程
问答
标签
搜索
登录
注册
问题:在unix机器上运行下面的代码,但在运行windows时同样的代码可以正常工作
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试用下面的代码将unicode字符替换为ascii字符。同样的代码在windows机器上运行,但在unix机器上运行时,我遇到错误:</p> <blockquote> <p>"TypeError: expected a character buffer object"</p> </blockquote> <pre><code>#!/usr/bin/python2 # coding=utf-8 import sys s = open(sys.argv[1], "r") table = { 0xe4: u'a', ord(u'ö'): u'o', ord(u'ü'): u'u', ord(u'é'): u'e', ord(u'ß'): u'b', } for i in s: print ("Translated Content in file:",str(i).translate(table)); s.close() </code></pre> <p>输入文件(<code>utf8.txt</code>)传递给包含以下内容的脚本</p> <pre><code>sömé täßt sömé täßt sömé täßt </code></pre> <p>预期结果是:</p> <pre><code>Translated Content in file: some tabt Translated Content in file: some tabt Translated Content in file: some tabt </code></pre> <p>在Unix机器上的实际结果:</p> <pre><code>Traceback (most recent call last): File "unicode.py", line 17, in <module> print ("Translated Content in file:",str(i).translate(table)); TypeError: expected a character buffer object </code></pre> <p>需要关于这个问题的建议。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我明白了,问题是您需要将处理划分为字符,而现在您直接应用于字符串。你能看看这个代码吗:</p> <pre><code>for i in s: translated = u'' for c in i.decode('utf8'): translated = translated+table.get(ord(c),c) print ("Translated Content in file:",translated); </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
2 回答
如何在乒乓球游戏中阻止球
2 回答
如何在乘法和模中不乘空间?
8 回答
如何在乘法和除以2个不同的数字之间进行交换?
8 回答
如何在也是数据一部分的单个字符上拆分大字符串
10 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
3 回答
如何在事件wxWidgets中传递自定义数据
2 回答
如何在事件中使用lambda i=i?
7 回答
如何在事件中心只接收最近的数据
5 回答
如何在事件发生之前保持云函数运行?
1 回答
如何在事件发生后使页面重定向到同一页面
3 回答
如何在事件回调之间保持python生成器的状态
9 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
10 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
4 回答
如何在事件处理程序中访问外部对象?
5 回答
如何在事件循环中将协程打包为正常函数?
5 回答
如何在事件循环之外运行协同程序?
4 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
10 回答
如何在事件文件中只保留一份摘要?
6 回答
如何在事件模板中添加事件
3 回答