我正在编写一个脚本来解析txt文件,并将它们存储到一个可以导出到CSV的pandas数据框中。你知道吗
当我使用<;100个文件时,我的脚本很容易工作—但是现在在尝试在完整的示例上运行它时,我遇到了很多问题。你知道吗
我正在处理大约8000个平均大小为300KB的.txt文件,因此总共大约有2.5GB的大小。你知道吗
我想知道我是否能得到一些关于如何使我的代码更有效率的提示。你知道吗
对于打开和读取文件,我使用:
filenames = os.listdir('.')
dict = {}
for file in filenames:
with open(file) as f:
contents = f.read()
dict[file.replace(".txt", "")] = contents
做print(dict)
会使我的python崩溃(至少看起来是这样)。
有没有更好的方法来处理这个问题?你知道吗
此外,我还将我的dict
中的所有values
转换为小写,使用:
def lower_dict(d):
lcase_dict = dict((k, v.lower()) for k, v in d.items())
return lcase_dict
lower = lower_dict(dict)
我还没有试过这个(不能通过开篇/阅读阶段),但我想知道这是否会导致问题?你知道吗
现在,在我被标记为复制之前,我读过:How can I read large text files in Python, line by line, without loading it into memory?
然而,这个用户似乎正在处理一个非常大的文件,即5GB,而我正在处理多个总计2.5GB的小文件(实际上我的整个示例大约是50GB和60000个文件)。所以我想知道我的方法是否需要有所不同。 抱歉,如果这是一个愚蠢的问题,不幸的是,我不是在内存和计算机处理方法领域精通。你知道吗
非常感谢您的帮助。你知道吗
谢谢
我相信最让你的代码慢下来的是你正在使用的.replace()方法。我认为这是因为内置的replace方法是迭代的,因此效率非常低。尝试在for循环中使用re模块。下面是我最近如何使用模块将键“T”、“:”和“-”替换为“”的示例,在本例中,这些键将从文件中删除:
如果有用的话请告诉我!你知道吗
相关问题 更多 >
编程相关推荐