我的python脚本假设要执行以下操作:
1)计算文件夹中的文件"输出"这是在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.51 MB,并且它们在不同的运行中没有更改。
先谢谢你帮助我:)。