0

我有一个标题和密码文件,格式如下:

<title> <password>
...

我需要搜索文件并返回给定 python 2.7 中标题的密码。做这个的最好方式是什么?我是处理文件的新手,所以如果有更好的方法来格式化此任务的文件,请随意给出答案。

4

2 回答 2

2

如果您的文件可能非常大,并且您希望将其全部加载到 ram 中,您可以遍历每一行,检查您需要的标题值。这种方法的性能将完全取决于扫描通过匹配线的速度。

如果您的文件大小合理并且可以读入内存,您可以考虑使用pickleorjson来存储您的文件,并将其序列化为dict. 这样您就可以读入文件并立即将标题作为键取出。

pythonshelve模块还为您提供了一个更高级别的对象,该对象将充当字典,并为您处理对底层数据库文件的序列化。它基本上是一个持久字典。这可能是效率和性能的最佳平衡。

使用普通 dict 或使用 shelve 都意味着没有字符串解析,因为键是您的标题,值是您的密码。

于 2013-01-01T04:18:04.103 回答
2
def find_pass(fname,target_title):
    with open(fname) as f:
        for ln in f:
            # some test to see if this is the line you want
            if ln.startswith(target_title):
                return ln[len(target_title):].strip()
于 2013-01-01T04:22:21.960 回答