我需要在文件中写一些行。这些行可以是英文或中文。我需要一些预定义的格式。我正在使用以下python代码。
self._file.write(u"%-9s %-21s%-6s %-6s %%\n" % (stop['stop_id'], stop['stop_name'], self.format_time(stop.get('arrival'), stop.get('exit')), self.format_time(stop.get('departure'), stop.get('enter'))))
正确构建停止词典。使用英文名称,格式正确,但使用中文名称格式不正确。我附上了解释问题的截图。
我是否需要更改写文件的方式或需要其他一些东西?
答案 0 :(得分:0)
恕我直言格式是正确的。我无法想象为什么Python应该改变它的格式。
您的问题是Sublime Text 没有显示正确对齐的中文文本。它可能是由用来显示汉字的字符集引起的。
显示不正确的行的十六进制转储,然后我们就可以说它是否是Python问题
这是阅读使用courrier new
等固定字符集格式化的邮件时常见的问题,并使用像arial
这样的比例邮件进行阅读,即使使用仅使用ascii字符的纯英文文本也是如此。
我使用UTF-8中的2个字节(例如éè
和Python(2.7))使用UTF-8字符进行了一些测试,根据字符数而不是字节数正确格式化unicode字符串 - 抱歉我没有什么可以处理中文的话......