Python:读取数据集文件
我必须读取并存储一个由3列和N行*块数组成的数据文件。。这里有一个简单的例子:Python:读取数据集文件,python,database,file,Python,Database,File,我必须读取并存储一个由3列和N行*块数组成的数据文件。。这里有一个简单的例子: z=3 1 2 3 2 5 6 1 5 7 z=2 1 3 9 2 5 7 使用python读取此文件并存储多个z行块的最佳方法是什么 编辑:我必须将它们存储到单独的块(索引)中,例如在上面的示例中,我应该有 block[0]=[[1 2 3],[2 5 6],[1 5 7]] block[1] = [[1 3 9],[2 57]] @沙哈夫,你来找我吗?scusa ma sono在python中
z=3
1 2 3
2 5 6
1 5 7
z=2
1 3 9
2 5 7
使用python读取此文件并存储多个z行块的最佳方法是什么
编辑:我必须将它们存储到单独的块(索引)中,例如在上面的示例中,我应该有
block[0]=[[1 2 3],[2 5 6],[1 5 7]]
block[1] = [[1 3 9],[2 57]]
@沙哈夫,你来找我吗?scusa ma sono在python中是一个noob:)
有人能给我解释一下如何标明这几个街区吗?特别是我写了z=N
,但实际上它是
ZONE I= 41 F=POINT TIME T= 0.0000715363
我必须赶上41。。阅读并存储follow 41行,然后在几行白线之后,我遇到另一个
区域
部分。。我不知道文件中有多少区域 我不确定您到底想如何存储它们,但我发现了一种快速通用的方法,它使用regex模块和for循环:
import re
with open('path/to/file', 'r') as fh:
lines = fh.readlines()
# Should give this structure
# lines = ['z=3','1 2 3', '4 5 6', '7 8 9', 'z=2', '3 5 9', '8 6 4', 'z=5', '12 3 5', '8 5 7', '1 1 1', '2 3 2', '6 6 5']
blocks = []
for i in range(len(lines)):
if 'z=' in lines[i]:
j = re.findall('\d',lines[i])[0]
block = lines[i+1:i+j]
blocks.append(block)
else:
continue
块
最终会有一个列表结构:[[1 2 3',4 5 6',…],[…]]
。您可以使用split()
方法进一步细化它,但这应该会让您脱离实际。当然,这确实假设您可以在一开始就将数据放入结构中,如果数据在文件中,这很容易,但我不确定您是否从数据库中提取数据
tmp_arr= list()
output=list()
with open('file.txt') as f:
for line in f.readlines():
if len(line.strip()) == 0:
pass
elif line.startswith('z='):
counter = int(line.split('=')[-1])
else:
tmp_arr.append(line.split())
counter -= 1
if counter == 0:
output.append(tmp_arr)
tmp_arr = list()
输出
[[['1', '2', '3'], ['2', '5', '6'], ['1', '5', '7']], [['1', '3', '9'], ['2', '5', '7']]]
显然我没有权限编辑你的答案。无论如何,您的代码不会为noobs编译,因为您需要将最后第二行更改为
output.append(tmp\u arr)