通过Python脚本读取.bash_history文件
我想写一个Python脚本,读取“.bash_history”文件,并打印一些统计信息。另外,我还想打印出使用频率最高的命令。我可以通过终端读取bash历史记录,但我不知道怎么用Python来实现。有没有人能帮我一下,告诉我该怎么开始?
3 个回答
0
这里有一些基本的想法,还有一些重要的Python函数可以用到:
- 首先,打开文件;用到的函数是
open
- 然后,逐行读取文件,统计每一行出现的次数;可以使用
for
循环和dict
字典来实现 - 如果你只想检查命令的一部分(比如把
cd XY
和cd ..
看作一样),可以通过去掉空格后的命令参数来规范化这些行;用到的函数是split
- 接着,使用
sort
对统计结果进行排序,并用print
输出出现次数最多的命令。
1
这是一个链接,指向Python的官方文档,内容主要讲解如何读取和写入文件。简单来说,就是教你怎么用Python程序打开文件、查看里面的内容,以及怎么把新的内容写入文件中。如果你想学习如何处理文件,这个文档会很有帮助。
1
有些事情是从…开始的。
#!/usr/bin/env python
import os
homedir = os.path.expanduser('~')
bash_history = open(homedir+"/.bash_history", 'r')
现在我们已经打开了文件…接下来你想做什么操作呢?
打印文件的内容。
bash_history_text = bash_history.read()
print bash_history_text
把字符串变成一行一行的数组…
import re
splitter = re.compile(r'\n')
bash_history_array = splitter.split(bash_history_text)
现在你可以随心所欲地对这个数组进行排序、过滤等等操作。