python读取一个文件的时间随着文件夹中文件的数量而增加

python读取一个文件的时间随着文件夹中文件的数量而增加,python,performance,Python,Performance,我的python脚本假定执行以下操作: 1) 对文件夹“output”中的文件进行计数,这在大约0.0秒内完成 2) 只读名为n0.dat的第一个文件,并从中创建空列表 import os, csv icoords, jcoords, kcoords = set(),set(),set() rowLen = 10 nMax = len([file for file in os.listdir('output') if file.endswith('.dat')]) print(nMax)

我的python脚本假定执行以下操作:

1) 对文件夹“output”中的文件进行计数,这在大约0.0秒内完成

2) 只读名为n0.dat的第一个文件,并从中创建空列表

import os, csv

icoords, jcoords, kcoords = set(),set(),set()
rowLen = 10 

nMax = len([file for file in os.listdir('output') if file.endswith('.dat')])
print(nMax)

with open('output/n0.dat', newline='') as csvfile:
print ('opened')
    myReader = csv.reader(csvfile, delimiter=' ') 
    for row in myReader:
        if len(row) == rowLen:
            icoords.add(int(row[0])) 
            jcoords.add(int(row[1])) 
            kcoords.add(int(row[2])) 
    iMin, jMin, kMin, iMax, jMax, kMax = min(icoords), min(jcoords), min(kcoords), max(icoords)+1, max(jcoords)+1, max(kcoords)+1
    cV = [[[[[] for n in range(nMax)] for k in range(kMax)] for j in range(jMax)] for i in range(iMax)]
问题是:如果文件夹中只有一个文件,则只需2秒钟即可完成程序;如果我有20个文件,它需要15秒,如果我有60个文件,我得到内存错误

为什么??python是否在计算机内存中的某个位置存储所有已计数的文件

顺便说一句,每个文件的大小为4.51MB,在不同的运行中没有更改


提前感谢您的帮助:)

nMax
是文件数,在最后一行中,您正在迭代
nMax
。因此,是的,我希望内存消耗和运行时间会增长。啊,当然:(谢谢!时间似乎只会随着
nMax
的增加而增加,无论我是计算文件数来获取它还是设置
nMax
手册,你计算nMax的方法都会创建一个列表并找到它的长度。一种更节省内存的方法是在迭代时为每个项目增加一个数字,这样你就可以不需要全部记住。使用括号而不是括号使其成为一个可编辑的列表,这意味着每个值都是根据需要计算的。代码如下:
nMax=sum(如果file.endswith('.dat'),则为os.listdir('output')中的文件为1)