我是python的新手,并制作了具有此输出的内容: (该文本位于csv文件中,所以: 1,A 2,B 3,C等)
Number Letter
1 A
2 B
3 C
26 Z
不幸的是,我花了很多时间使用一种复杂的方法来制作它,我手动制作这样的空格: 更新了代码
fx = int(input('Number?\n'))
f=open('nums.txt','r')
lines=f.readlines()
line = lines[fx - 1]
with open('nums.txt','r') as f:
for i, line in enumerate(f):
if i >= 5:
break
NUM, LTR, SMB = line.rsplit(',', 1)
print(NUM.ljust(13) + LTR.ljust(13) + SMB)
如何制作3列?现在它出现了
ValueError: not enough values to unpack (expected 3, got 2)
所以有一种更简单的实现方法,不会像这样移动字符串:
Number Letter
1 A
2 B
3 C
26 Z #< string moves with spaces.
答案 0 :(得分:2)
对于简单对齐,您可以使用ljust
或rjust
。您也无需为要处理的每一行读取整个文件:
with open('numberletter','r') as f:
for i, line in enumerate(f):
if i >= 5:
break
number, letter = line.rsplit(',', 1)
print(number.ljust(13) + letter)
要获得更复杂的输出格式,请查看str.format()
和formatting syntax
答案 1 :(得分:-1)
您可以使用sys
模块。
import sys
a=[1,"A"]
sys.stdout.write("%-6s %-50s " % (a[0],a[1]))