Python:格式输出string,右alignment
我正在处理一个包含坐标x,y,z的文本文件
1 128 1298039 123388 0 2 .... 每一行都用3个项目分隔
 words = line.split() 
处理完数据之后,我需要将坐标写回到另一个txt文件中,以便每列中的项目都alignment(以及input文件)。 每一行都由坐标组成
 line_new = words[0] + ' ' + words[1] + ' ' words[2]. 
 有没有像std::setw()等在C ++允许设置宽度和alignment的操纵器? 
 使用更新的str.format语法来尝试这种方法: 
 line_new = '{:>12} {:>12} {:>12}'.format(word[0], word[1], word[2]) 
 以下是如何使用旧的%语法(对不支持str.format较旧版本的Python有用): 
 line_new = '%12s %12s %12s' % (word[0], word[1], word[2]) 
你可以像这样alignment:
 print('{:>8} {:>8} {:>8}'.format(*words)) 
 其中>表示“ alignment到右边 ”, 8是特定值的宽度 。 
这是一个certificate:
 >>> 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是只有三个元素的列表)。 
 这可以通过使用rjust来实现: 
 line_new = word[0].rjust(10) + word[1].rjust(10) + word[2].rjust(10) 
简单的输出表格:
 a = 0.3333333 b = 200/3 print("variable a variable b") print("%10.2f %10.2f" % (a, b)) 
输出:
 variable a variable b 0.33 66.67 
%10.2f: 10是最小长度,2是小数位数。