【问题标题】:How to write into a text file with specified formatting python如何写入具有指定格式python的文本文件
【发布时间】:2021-03-04 14:13:25
【问题描述】:

我有一个将文本附加到文本文件中的代码,但我需要这样做,以便在输入的数据之间分隔特定数量的空格。例如,我的程序要求用户输入文本 4 次,所以它看起来像这样:

enter name: Mike
enter middle name: Jason
enter last name: Bell
enter age: 24

现在文本文件将包含以下内容:

MikeJasonBell24

但是,我需要将其显示为名字的“限制”为 10 个空格,中间名 6 个空格,姓氏 5 个空格,年龄 2 个空格。 所以文本文件将包含以下内容:

Mike      Jason Bell 24

如果问题有任何混淆,请告诉我。

【问题讨论】:

标签: python list input text


【解决方案1】:

您可以使用格式选项来指定用空格填充的长度

name = "Mike"
middle_name = "Jason"
last_name = "Bell"
age = 24

result = f"{name:10s}{middle_name:6s}{last_name:5s}{age:2d}"
print(result)  # "Mike      Jason Bell 24"

但是由于您不知道单词的大小,如果一个比您允许的大小长,您就有麻烦了,因为它会卡在下一个,一个,您可以使用单个空格来解决该问题, 在每个之间,或一个制表符

result = f"{name}\t{middle_name}\t{last_name}\t{age}"
print(result)  # "Mike    Jason   Bell    24"

由于您可能需要从行中检索不同的部分,您可以使用不带参数的split()

print(result.split())  # ['Mike', 'Jason', 'Bell', '24']

【讨论】:

    【解决方案2】:

    试试这个:

    #input data
    first_name = "Mike"
    middle_name = "Jason"
    last_name = "Bell"
    age = 24
    
    result = '{:10s} {:6s}{:5s}{:2d}'.format(first_name, middle_name, last_name, age)
    print(result)
    with open("file.txt", 'w') as f:
        f.write(result)
        f.write("\n")
    

    #输出数据:

    Mike       Jason Bell 24
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      相关资源
      最近更新 更多