繁体   English   中英

使用 python 以特定格式打印字符串中的数字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM