Python - PrettyTable,如果一列中的文本很长,是否可以将其设置为新行?

Python - PrettyTable, if text in one column is long is it possible to set it in new row?

我的问题是:我想将制表符分隔格式的文本设置为漂亮的 ASCII table。我可以使用 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))

是否可以使用 prettytable 在 python3 中轻松完成类似的操作,还是我应该使用其他模块?

我不确定 prettytable 中是否有允许您执行此操作的函数,但有一个简单的解决方法可以准确地实现您想要的。但是,这需要您在将值添加到 table.

之前直接修改 import_file.txt 或解析并应用更改

举个例子

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

如果转换成这样的格式

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

将逐行打印字符。

因此,在您的角色中添加一个换行符将迫使他们打破当前行并在同一单元格中开始一个新行([row][col]=cell)。