为了账号安全,请及时绑定邮箱和手机立即绑定

Python:格式输出字符串,右对齐

Python:格式输出字符串,右对齐

慕森卡 2019-08-31 15:29:07
我正在处理包含坐标x,y,z的文本文件     1      128  1298039123388        0        2....每行使用分为3个项目words = line.split()在处理数据之后,我需要在另一个txt文件中写回坐标,以便每列中的项目对齐(以及输入文件)。每一行都由坐标组成line_new = words[0]  + '  ' + words[1]  + '  ' words[2].std::setw()在C ++中是否有类似的操纵器允许设置宽度和对齐?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

使用较新的str.format语法尝试此方法:


line_new = '{:>12}  {:>12}  {:>12}'.format(word[0], word[1], word[2])

以下是使用旧%语法的方法(对于不支持的旧版Python很有用str.format):


line_new = '%12s  %12s  %12s' % (word[0], word[1], word[2])


查看完整回答
反对 回复 2019-08-31
?
偶然的你

TA贡献1841条经验 获得超3个赞

您可以这样对齐:


print('{:>8} {:>8} {:>8}'.format(*words))

其中的>意思是“ 对齐到右边 ”,8是特定值的宽度。


这是一个证据:


>>> for line in [[1, 128, 1298039], [123388, 0, 2]]:

    print('{:>8} {:>8} {:>8}'.format(*line))



       1      128  1298039

  123388        0        2

PS。*line表示line列表将被解压缩,因此.format(*line)类似于.format(line[0], line[1], line[2])(假设line是仅包含三个元素的列表)。


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 4929 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信