我有一个包含ID和信息的文件,如下所示:
1oMZgkoaz3o 2011-12-29T01:23:00.000Z 9 503 ApolloIsMyCoPilot
nUW1TomCSQg 2011-12-29T01:23:15.000Z 9 348 grea7stuff
tJuLnRrAcs0 2011-12-29T01:26:20.000Z 9 123 AdelGaming
tyi5g0mnPIs 2011-12-29T01:28:07.000Z 9 703 PreferredGaming
Run Code Online (Sandbox Code Playgroud)
我想在某些行上添加一个标志,所以如果我有一本字典
flags = {'1oMZgkoaz3o': flag1, 'tJuLnRrAcs0': flag2}
Run Code Online (Sandbox Code Playgroud)
我想要的结果是
1oMZgkoaz3o 2011-12-29T01:23:00.000Z 9 503 ApolloIsMyCoPilot flag1
nUW1TomCSQg 2011-12-29T01:23:15.000Z 9 348 grea7stuff
tJuLnRrAcs0 2011-12-29T01:26:20.000Z 9 123 AdelGaming flag2
tyi5g0mnPIs 2011-12-29T01:28:07.000Z 9 703 PreferredGaming
Run Code Online (Sandbox Code Playgroud)
所以我制作了这段代码
l = True
while l is True:
a = f.readline()
try a.split(' ')[0] in flags.iterkeys():
f.seek(-1,1)
f.write(' '+str(flags[a.split(' ')[0]])+'\n')
del flags[a.split(' ')[0]]
except IndexError:
l = False
Run Code Online (Sandbox Code Playgroud)
所以,我的Python代码可能很差,但问题是,这个代码我正在替换文本,所以文件都搞砸了.如何在不更换的情况下书写?如果您对代码有更好的想法,欢迎您...
我需要以很多字典的形式将信息存储到一个非常大的文件中.这并不是那么重要,只是说我试图先将所有数据都输入这些词典中,然后耗尽内存(约60Gb).
很好,所以我想在文件中添加数据,而不是实际将其加载到内存中,通过在行上执行循环并将每行添加一些文本.那可能吗?如果是这样,怎么样?
可能重复:
else的目的,最后是异常处理
我想理解为什么声明中finally存在该条款try/except.我理解它的作用,但很明显,如果它在语言中占有一席之地,我会遗漏一些东西.具体来说,在finally字段中编写一个子句与在try/except语句之外写一个子句之间的区别是什么?