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

我正在处理包含坐标x,y,z的文本文件


     1      128  1298039

123388        0        2

....

每行使用分为3个项目


words = line.split()

在处理数据之后,我需要在另一个txt文件中写回坐标,以便每列中的项目对齐(以及输入文件)。每一行都由坐标组成


line_new = words[0]  + '  ' + words[1]  + '  ' words[2].

std::setw()在C ++中是否有类似的操纵器允许设置宽度和对齐?


慕森卡
浏览 4930回答 3
3回答

RISEBY

使用较新的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])

偶然的你

您可以这样对齐: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        2PS。*line表示line列表将被解压缩,因此.format(*line)类似于.format(line[0], line[1], line[2])(假设line是仅包含三个元素的列表)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python