问题描述
我的麻烦是:我想将制表符分隔格式的文本设置为一个漂亮的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))
是否可以使用prettytable在python3中做类似的事情?还是应该使用其他模块?
解决方法
我不确定type 'a maybe_pair = Single of 'a | Double of 'a * 'a
中是否有允许您执行此操作的功能,但是有一种简单的解决方法可以准确地实现所需的功能。但是,这要求您直接修改prettytable
或解析并应用更改,然后再将值添加到表中。
这是一个例子
import_file.txt
如果以这种格式转换
['1','2','3']
将逐行打印字符。
因此,在字符中添加换行符将迫使他们中断当前行并在同一单元格(print("\n".join(['1','3'])
中开始新行。