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

问题描述

我的麻烦是:我想将制表符分隔格式的文本设置为一个漂亮的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))

是否可以使用prettytablepython3中做类似的事情?还是应该使用其他模块?

解决方法

我不确定type 'a maybe_pair = Single of 'a | Double of 'a * 'a 中是否有允许您执行此操作的功能,但是有一种简单的解决方法可以准确地实现所需的功能。但是,这要求您直接修改prettytable或解析并应用更改,然后再将值添加到表中。

这是一个例子

import_file.txt

如果以这种格式转换

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

将逐行打印字符。

因此,在字符中添加换行符将迫使他们中断当前行并在同一单元格(print("\n".join(['1','3']) 中开始新行。