gpt4 book ai didi

python - 在 Python 中将大文件(25k 条目)加载到 dict 中很慢?

转载 作者:太空狗 更新时间:2023-10-30 00:28:34 24 4
gpt4 key购买 nike

我有一个大约有 25000 行的文件,它是一个 s19 格式的文件。

每一行就像:S214 780010 00802000000010000000000A508CC78C 7A

实际文件中没有空格,第一部分780010是这一行的地址,我希望它是一个dict的键值,我想要数据部分 00802000000010000000000A508CC78C 是这个键的值。我这样写我的代码:

def __init__(self,filename):
infile = file(filename,'r')
self.all_lines = infile.readlines()
self.dict_by_address = {}

for i in range(0, self.get_line_number()):
self.dict_by_address[self.get_address_of_line(i)] = self.get_data_of_line(i)

infile.close()

get_address_of_line() 和 get_data_of_line() 都是简单的字符串切片函数。 get_line_number() 遍历 self.all_lines 并返回一个 int

问题是,init 过程花了我超过 1 分钟,是我构建字典的方式错误还是 python 只需要这么长时间来执行此操作?

顺便说一句,我是 python 的新手:) 也许代码看起来更像 C/C++,感谢任何有关如何像 python 一样编程的建议:)

最佳答案

这样的事情怎么样? (我制作了一个只有一行 S21478001000802000000010000000000A508CC78C7A 的测试文件,因此您可能需要调整切片。)

>>> with open('test.test') as f:
... dict_by_address = {line[4:10]:line[10:-3] for line in f}
...
>>> dict_by_address
{'780010': '00802000000010000000000A508CC78C'}

关于python - 在 Python 中将大文件(25k 条目)加载到 dict 中很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10168349/

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