读取一种类型的文本文件,里面内容是这样的:
00401000 56 8D 44 24 08 50 8B F1 E8 94 B7 01 00 C7 06 74
00401010 BE 54 00 8B C6 5E C2 04 00 CC CC CC CC CC CC CC
00401020 C7 01 74 BE 54 00 E9 9E B8 01 00 CC CC CC CC CC
00401030 56 8B F1 C7 06 74 BE 54 00 E8 8B B8 01 00 F6 44
00401040 24 08 01 74 09 56 E8 E4 BA 01 00 83 C4 04 8B C6
00401050 5E C2 04 00 CC CC CC CC CC CC CC CC CC CC CC CC
00401060 8B 44 24 08 C3 CC CC CC CC CC CC CC CC CC CC CC
00401070 C3 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
00401080 8B 44 24 08 66 8B 08 8B 54 24 04 66 89 0A C3 CC
00401090 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
.....
有好几十万行。
我想把后面那些 16 进制的数字依次转换成 10 进制,存到一个 list 里。
我现在代码读取很慢,读一个文件要几十分钟
with open(f"{file_name}", "r") as rd:
arr = []
for line in tqdm(rd.readlines()):
arr.extend([int(f"0x{a}", 16) for a in line.strip().split(" ")[1:]])
return np.array(arr, dtype=np.ubyte)
有没有更快的方法,求大佬解答
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.