Python PrettyTable,如果一列中的文本很长,是否可以在新行中设置它?

2024-10-03 02:45:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是:我想将制表符分隔格式的文本设置为一个漂亮的ASCII表。我可以用prettytable做到这一点,这不是我目前的问题。问题是,我有一个列有很长的文本,我想让prettytable将文本分成更小的部分

我现在所拥有的:

+------+------+--------------------------------------------------+
| Col1 | Col2 |                         Col3                     |
+----------------------------------------------------------------+
|     a|     b| 123456789123456789123456789123456789123456789123 |
|     d|     e| 123456789123456789123456789123456789123456789123 |
+------+------+--------------------------------------------------+

我想要的是:

+------+------+---------------------+
| Col1 | Col2 |        Col3         |
+---------------------------- ------+
|     a|     b| 1234567891234567891 |
|      |      | 2345678912345678912 |
|      |      |      3456789123     |
|     d|     e| 1234567891234567891 |
|      |      | 2345678912345678912 |
|      |      |      3456789123     |
+------+------+---------------------+

我的代码如下:

import re
from prettytable import PrettyTable

imported = open("import_file.txt", "r")
x = PrettyTable()
x.field_names = ["Col1", "Col2", "Col3"]
for i in imported:
    red = re.split(r'\t', i)
    x.add_row(red)
with open('exit_file.txt', 'w') as exitfile:
    exitfile.write(str(x))

在python3中,使用prettytable可以轻松地完成类似的任务吗?还是应该使用其他模块


Tags: 文本importretxtredopen制表符file
1条回答
网友
1楼 · 发布于 2024-10-03 02:45:29

我不确定是否有一个函数允许您在prettytable中执行此操作,但有一个简单的解决方法可以完全实现您想要的。但是,这要求您在将值添加到表中之前直接修改import_file.txt,或者解析并应用更改

这里有一个例子

['1', '2', '3'] 

如果以这种格式转换

print("\n".join(['1', '2', '3'])

将逐行打印字符

因此,在字符中添加换行符将迫使它们在同一单元格([row][col]=cell)中换行并开始新行

相关问题 更多 >