gpt4 book ai didi

python - 使用 python 将多个文件中的数据加载到单个变量中

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:59 25 4
gpt4 key购买 nike

我在文件夹 (foo) 中有一堆文件 (bar0,bar1,bar2...,bar20)。每个文件有6000行格式

1   v1
2 v2
3 v3

等等。 vi 都是整数

我想检查文件夹中的所有文件,并将数据加载到单个列表中,并添加适当位置的值。目前,我正在这样做

for i in range (20):
fin = open('{dir}/ions{i}'.format(dir=self.locDir,i=i)).readlines()[:]
for j in range (len(fin)):
line = fin[j]
words = line.split()
x = int(words[0])
y = int(words[0])
if not x in self.ionDist.X:
self.ionDist.X.append(x)
if len(self.ionDist.Y) == j:
self.ionDist.Y.append(0)
self.ionDist.Y[j] += y

ionDist 是一个简单的类

class dist:
def __init__(self):
self.X = []
self.Y = []

但是速度非常慢(我有 80 个这样的文件夹,每次需要几分钟)。有什么更好的方法来做到这一点?

最佳答案

因为,您不需要 self.X,这是我的解决方案:

for i in range(20):
fin = open('{dir}/ions{i}'.format(dir=self.locDir,i=i)).readlines()
y = lambda(x:eval(x.strip().split()[1]),fin)
if len(y) > len(self.Y): self.Y = self.Y + [0]* (len(y) - len(self.Y))
elif len(y) < len(self.Y): y = y + [0]*(len(self.Y) - len(y))
self.Y = [ a+b for (a,b) in zip(self.Y,y)]

如果所有文件的行数相同,您也可以删除 if、elif 语句。

关于python - 使用 python 将多个文件中的数据加载到单个变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17471221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com