我有一个大文本文件,它也包含表格形式数据 我想从表格形式中检索数据,从标题开始直到文件中表格的末尾(不知道20或30行之后结尾可能在哪里,不同文件的标题和结尾可能不同) 我应该忽略文件中的所有文本,只需要表格形式并放在一个单独的文件中。
实施例: 顶级生命科学集群中的品牌和主导市场存在, 包括大波士顿,湾区,Shoojhriwp,
Header
Row1 val1 val2 val3
ROw2 val1 -- ---
row "" "" ""
"" "" "" """
""
(May be end of the table)
again the text........
.........................
,,,,,,,,,,,,,,,,,,,,,,,
那么,我如何从表中检索数据(与文本文件中的表格格式相同)并将其放在文件中。
我尝试了一些东西并且无法正常工作
答案 0 :(得分:0)
所以你可以做的一件事是逐行读取文件,一旦你到达表的标题(我假设你事先知道表头是什么样的),你可以在它上面使用split方法你在空格(或可能是逗号)上分开它并记录这些数据。假设表中的数据遵循固定结构,一旦split的结果数不同,每行的列数相同,则可以停止从文件中记录数据。
以下是使用str.split()方法的方法
假设你有一个字符串
line = "col1 col2 col3"
column_list = line.split()
column_list现在是[" col1"," col2"," col3"]
由于在此示例中列表中只有3个元素,因此您可以在存储表格每行的值之前检查列表的大小。如果列表的大小与之前的行不同,则表示您已经到达文件中表格的末尾
答案 1 :(得分:0)
最简单的方法就是这样(安装了Pandas)
from StringIO import StringIO
import pandas as pd
f = open('path/to/file.txt', 'r')
fileobj = StringIO(f.read())
dataframe = pd.read_csv(fileobj, header=0,
sep='\t', engine="python")
除非我看到具有正确格式的更详细的示例,否则很难为其编写代码。