我有300个txt
文件(每个文件的大小在80-100mb之间),我应该把它们放到一个list
对象中,同时使用所有内容。我已经创建了一个有效的解决方案,但不幸的是,当我加载超过3个txt-s时,它会崩溃。我不确定这是否重要,但我有很多ram,因此如果可以解决问题,我可以轻松地将30GB加载到内存中。你知道吗
基本上我想在同一个for循环中遍历300txt
个文件。是否可以创建一个包含30GB内容的列表对象?或者以任何不同的方式实现它?如果有人能给我解释一下理想的解决方案或任何有用的建议,我将不胜感激。你知道吗
这里是我如何尝试,它产生的内存错误后,加载3 txt。你知道吗
def addContentToList(filenm):
with open(filenm, encoding="ISO-8859-1") as v:
jsonContentTxt.extend(json.load(v))
def createFilenameList(name):
for r in range(2,300):
file_str = "%s%s.txt" % (name, r,)
filenames.append(file_str)
filename1 = 'log_1.txt'
filename2 = 'log_'
filenames = []
jsonContentTxt = []
with open(filename, encoding="ISO-8859-1") as f:
jsonContentTxt = json.load(f)
createFilenameList(filename2)
for x in filenames:
addContentToList(x)
json_data = json.dumps(jsonContentTxt)
content_list = json.loads(json_data)
print (content_list)
Put down the chocolate-covered banana and step away from the European currency systems.
像这样存储数据,文本文件真是个坏主意。你应该使用数据库。我推荐PostgreSQL和SQLite。你知道吗
除此之外,您的错误可能是由于使用32位版本的Python(这将限制您的内存分配到2GB),而不是使用64位。即便如此,我认为你最好还是使用一个更合适的工具,而不是分配30GB的内存空间。你知道吗
相关问题 更多 >
编程相关推荐