我正在处理包含坐标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])
偶然的你
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是仅包含三个元素的列表)。
添加回答
举报
0/150
提交
取消