[英]Print numbers in a string in specific format using python
我能够使用 python 创建一个文件,该文件具有如下所示的特定格式的数据。 它从#
为1
的 00000# 开始,一直到100000
。 在文本My Team
之前和之后的每一行中都存在相同的数字。
#output file
000001 My Team 000001
000002 My Team 000002
...all the way to
100000 My Team 100000
我不确定如何在 python 中创建这种格式。 我知道这很简单,但我对如何进行有点迷茫。 我对 python 很陌生,如果有人能给我一些指导,我将不胜感激。
谢谢你们。
如果你想确保一个数字总是有六位数字,你可以用这样的东西来做到这一点
def leadingZeros(num, length):
out_str = str(num);
while len(out_str) < length:
out_str = "0" + out_str;
return out_str;
您可以使用字符串格式来实现这一点
output_string = ''.join([f'{i:06d} My Team {i:06d}\n'for i in range(1, 100001)])
或者使用zfill
output_string = ''.join([f'{str(i).zfill(6)} My Team {str(i).zfill(6)}\n'for i in range(1, 100001)])
您可以尝试在 python 3.6 中添加的f-strings
:
PADDING = 6
with open('test.txt', 'w') as fh:
for i in range(1, 100001):
print(f'{i:0{PADDING}d} My Team {i:0{PADDING}d}', file=fh)
OUTPUT:
000001 My Team 000001
000002 My Team 000002
...
100000 My Team 100000
另一种方法是使用str.zfill
(zfill 代表零填充):
>>> i = 1
>>> f'{str(i).zfill(PADDING)} My Team {str(i).zfill(PADDING)}'
000001 My Team 000001
如果要打印已经采用该格式的文件内容,那么
with open('file.txt','r') as f:
file_data=f.read()
l=file_data.split("\n")
print(*l)
如果你想创建一个这样的文件,那么你可以使用,将文件放在与你的代码相同的目录中
with open('test.txt','w') as myfile:
for i in range(1,100001):
print("{:0>6d} My team {:0>6d}".format(i,i),file=myfile)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.