我要做的是每次将“TCPStreamPayload”文件写入时,都需要一个计数器,该计数器在每次将信息附加到文件时都会增加。
例如,我有:
payloadRecon = open('TCPStreamPayload.txt','a')
segmentCount = 0
--my script here--
然后在底部
if payloadRecon.write:
segmentCount +=1
payloadRecon.write('####TCP PAYLOAD STREAM RECONSTRUCTION. Segment ' + str(segmentCount) + '######' '\n\n\n\n').
基本上,每次我使用脚本写入这个文件时,我都希望段号增加1。
您真的应该编写一个包装类并使用它而不是一个普通的
file
:或者,如果您只是尝试将这三行代码包装起来,这样就不必不断重复,您可以编写一个包装函数:
现在,您只需要这一行来计数和写入:
如果需要包装多个方法,则该类更加灵活。但你显然需要委托你关心的任何其他方法。当然,您可以通过
__getattr__
动态地执行委派。或者你可以使用继承权。(但请记住,在3.x中,类不是file
,而是io
包中的一个类,无论如何,您不应该通过构造函数创建file
或io.whatever
,而是通过open
,因此您仍然需要编写包装器工厂函数来替换open
。好消息是,这意味着您不需要处理__new__
,只需要处理__init__
。)在3.x中,您甚至可以对实例进行monkeypatch(但这在2.x中不起作用,因为
file.write
是只读的):但事实上,把事情说清楚可能是解决问题的方法。
相关问题 更多 >
编程相关推荐