倒序读取 windows 系统日志 evtx 文件
要从最后读取 evtx 文件,需要反向迭代该文件。这可以在 python 中使用以下步骤实现:
首先,我们要读取文件内容:
with open(filename, "r", encoding="utf-8") as f: f.seek(0, os.seek_end) position = f.tell()
接下来,我们逐行读取文件并将其反转:
line = "" while position >= 0: f.seek(position) next_char = f.read(1) if next_char == " ": yield line[::-1] line = "" else: line += next_char position -= 1 yield line[::-1]
最后,我们打印结果:
for line in readlines_reverse("go.mod"): print(line)
样例输出:
require ( go 1.20 module daily/gui ) gocv.io/x/gocv v0.33.0 github.com/ncruces/zenity v0.10.10 require ( ) github.com/akavel/rsrc v0.10.2 // indirect github.com/dchest/jsmin v0.0.0-20220218165748-59f39799265f // indirect github.com/ josephspurrier/goversioninfo v1.4.0 // indirect github.com/randall77/makefat v0.0.0-20210315173500-7ddd0e42c844 // indirect github.com/stretchr/testify v1.8.0 // indirect golang.org/x/image v0.12.0 // indirect golang.org/x/sys v0.12.0 // indirect