使用python读取文本表

2024-10-01 04:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的表(注意这是一个小的小节,这里有40多个字段)

enter image description here

我想问一下,有没有一种方法可以在Python中读取这个并将其存储为列表列表?在

[[804,01000001,jj,01asdas],[804,0100002,hh,1-NetSassassdasdsds]]

Tags: 方法列表hhjj小节netsassassdasdsds
3条回答

您可以去掉前三个标题行,去掉最外层的|,然后用|作为分隔符拆分行,最后去掉空白。在

使用列表理解,假设表文本存储在data

arr = [(f for f in l.strip('|').split('|')) for i, l in enumerate(data.split('\n')) if i > 2]

根据评论:

import pandas as pd

arr = pd.read_csv('path_to_txt_file.txt', sep='|').values.tolist()

使用以下文本文件进行测试:

^{pr2}$

输出

>>> pd.read_csv('random.txt', sep='|').values.tolist()
[['abc', 'foo', 'bar'], ['abc2', 'foo2', 'bar2']]

可以按顺序分析该行,抛出带有破折号的行,拆分文件,并将其附加到列表中

data = []
with open(file) as f:
    for line in f:
        if '-' not in line:
            data.append(line.split('|')[1:-1])

在下面的例子中进行了测试

^{pr2}$

打印以下输出

[['id', 'f1   ', 'f2   ', 'f3   '],
 ['12', '01001', 'jj', '01'],
 ['12', '01001', 'jj', '01']]

相关问题 更多 >