Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在特定于行的单词中转换为表格格式_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python 在特定于行的单词中转换为表格格式

Python 在特定于行的单词中转换为表格格式,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,对DEEPAK Barin:34的物理研究是ST#:3,视觉:593,胸部:56,眼睛(0:LV,1:HV):0 像这样,这里有很多行。我想要像这样的表格格式的输出 Barin | ST | VISUAL | Chest | LV | HV 34 | 3 | 593 | 56 | 1 | 0 首先,必须解析这些行。查看行格式,我们可以得出以下结论: 使用简单的字符串操作(索引、拆分、分区等)进行解析并非易事 如果行在结构上没有太大的变化,那么使用像or这样的成

对DEEPAK Barin:34的物理研究是ST#:3,视觉:593,胸部:56,眼睛(0:LV,1:HV):0

像这样,这里有很多行。我想要像这样的表格格式的输出

Barin |  ST  | VISUAL | Chest | LV | HV 
 34   |   3  |   593  | 56    | 1  | 0

首先,必须解析这些行。查看行格式,我们可以得出以下结论:

  • 使用简单的字符串操作(索引、拆分、分区等)进行解析并非易事
  • 如果行在结构上没有太大的变化,那么使用像or这样的成熟解析器可能会有点过头
  • 你很适合这个
下面是一个示例函数,它使用模块将行解析为命名元组:

使用此解析函数,您可以使用轻松格式化数据,如下所示:

import rapidtables

with open('textfile') as infile:
    parsed_lines = [parse_line(line.strip()) for line in infile]
table = rapidtables.make_table(parsed_lines , tablefmt='simple')
print(table)

您将数据存储在什么类型的文件中?文本文件或任何文件都可以,但这里不存储我从日志中获取的数据。我需要逻辑。LV->0不应该代替1吗?(也是HV->而不是0…)是的,伙计,应该是lv->1和HV->0从下面我对答案的评论中,我假设您现在正在询问解析输入行的问题?你能澄清一下,如果要获取的输入值是一行文本,它的形式总是
,那么DEEPAK Barin的物理研究:34是ST#:3,视觉:593,胸部:56,眼睛(0:LV,1:HV):0
?它在一个段落中。不像dict或list。对于这种情况,您还有其他逻辑吗?没有使用rapidtables模块/包。可能我误解了这个问题。我假设您已经确定了解析,并且希望有一种方法可以很好地将其格式化为表。如果您特别询问解析,您可能需要改写您的问题。如果您能展示一些您尝试过的代码,它可能有助于更好地理解问题。
import rapidtables

with open('textfile') as infile:
    parsed_lines = [parse_line(line.strip()) for line in infile]
table = rapidtables.make_table(parsed_lines , tablefmt='simple')
print(table)