【问题标题】:Print formatting to file in Python在 Python 中将格式打印到文件
【发布时间】:2015-02-16 03:31:44
【问题描述】:

我希望以格式化的方式写入文件。我一直在寻找如何做到这一点,我设法得到的最佳解决方案是:

write_to_file.write('{:20} {:20} {:3}\n'.format(w[0][0], w[0][1], w[1]))

但是,当我这样做时,我没有得到精确的格式。

det                  er                     6
er                   det                    5
den                  er                     5
du                   kan                    4
hva                  er                     3
har                  en                     3
er                   død                   3
å                   gjøre                 3
jeg                  vil                    3
har                  vi                     3
et                   dikt                   2
når                 du                     2
det                  var                    2
må                  være                  2
kan                  skrive                 2
hva                  gjør                  2
ha                   et                     2
jeg                  har                    2
du                   skal                   2
vi                   kan                    2
jeg                  kan                    2
en                   vakker                 2
er                   du                     2
når                 man                    2
får                 jeg                    2

我用上面的方式打印了一些东西。我需要一切都完美对齐。

【问题讨论】:

  • 你可能会觉得这个问题很有趣:stackoverflow.com/questions/22225441
  • 大胆猜测:您还没有从项目中去除空白。
  • 有趣。看起来重音字符被视为占用两个空格。
  • 这可能是组合字符占用了额外的代码点的结果。 NFC 会有所帮助,但它无法解决诸如 n-umlaut 之类的奇怪问题。
  • Python 2.x 再次来袭。

标签: python string formatting format python-unicode


【解决方案1】:

那是因为you're still dealing with bytes。一旦你开始处理实际的字符,你会发现它们完美地对齐。

write_to_file.write('{:20} {:20} {:3}\n'.format(u'å', u'gjøre', u'3'))

【讨论】:

  • 当我这样做时,我收到错误消息:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
  • 那说明你的代码还有其他问题,并不是说这个解决方案有问题。
【解决方案2】:

Pandas 库中的 DataFrame 命令也值得研究。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 2012-01-02
    相关资源
    最近更新 更多