【问题标题】:How to align strings in columns(detailed)?如何对齐列中的字符串(详细)?
【发布时间】:2022-07-08 02:07:15
【问题描述】:

很抱歉再次提出这个问题,但我犯了一个错误,没有提供足够的细节。 我想在我问过这个问题的列中对齐字符串并调整间距。

这里: How to align strings in columns?

但我无法将其应用于我的详细代码,这是我没有提供的错误。

我的代码:

import time
seperator='|'+'-'*33+'|\n'
seperator2='|'+'='*33+'|\n'
end = '|'+'^'*33+'|'
t=['Tuesday','July','2022','03','06']
try:
 with open('time.txt','r') as f: 
    content = f.readlines()
except:
 with open('time.txt','w') as f: 
    f.write('pass')
with open('time.txt','r') as f: 
 content = f.readlines()
if content[0] != '_________________________________\n':
 with open('time.txt','w') as f:
            header= '_'*33+'\n'+\
                    '|Day |Month |Year |Hour |Minute |\n'
            data = (f'|{t[0]} |{t[1]} |{t[2]}'
            f'|{t[3]} |{t[4]} |\n')
            f.write(header+seperator+data+end)
elif content[0] == '_________________________________\n':
 with open('time.txt','r+') as f:
            saved=f.readlines()[:-1]
            f.seek(0)
            data = (f'|{t[0]} |{t[1]} |{t[2]}'
            f'|{t[3]} |{t[4]} |\n')
            f.writelines(saved+[seperator2,data,end]) 

time.txt 文件中的输出(如果已经运行过一次):

_________________________________
|Day |Month |Year |Hour |Minute |
|---------------------------------|
|Tuesday |July |2022|03 |06 |
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|

输出(两次)(显示此以澄清数据应保存并重新打印):


_________________________________
|Day |Month |Year |Hour |Minute |
|---------------------------------|
|Tuesday |July |2022|03 |06 |
|=================================|
|Tuesday |July |2022|03 |06 |
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|

我想要的输出:

_________________________________
|Day |Month |Year |Hour |Minute |
|-------------------------------|
|Tuesday |July |2022|03 |06     |
|===============================|
|Tuesday |July |2022|03 |06     |
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|

我最初发的帖子在这里: How to align strings in columns?

我没有详细说明我的帖子的那个也许你可以阅读我问他们的问题和答案。

很抱歉第一次没有添加细节。

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 可能您正在查看这样的字符串格式? geeksforgeeks.org/string-alignment-in-python-f-string
  • 为什么不直接使用pprinttabulateprettytable 模块?只打印带有数据的数组的代码更少。
  • 使用熊猫...请努力正确格式化您的代码

标签: python string multiple-columns


【解决方案1】:

正如有人已经提到的,如果您希望打印语句看起来与虚线表完全相同,您应该使用tabulate

我猜如果你使用 tabulate 应该有一种更简洁的方式来解析 .txt 文件

table = tabulate(rows, headers=["Day","Month","Year", "Hour","Minute"])

其中 rows 是列表列表或其他表格数据类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-07
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多