从文件中获取字符串

时间:2013-01-01 04:10:29

标签: python file-io python-2.7

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

<title> <password>
...

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

2 个答案:

答案 0 :(得分:2)

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

如果您的文件大小合理且可以读入内存,则可以考虑使用picklejson来存储文件,并将其序列化为dict。这样你就可以在文件中读取并立即将标题拉出来作为密钥。

python shelve模块还为您提供了一个更高级别的对象,它将像字典一样工作,并为您处理基础数据库文件的序列化。它基本上是一个持久的字典。这可能是效率和性能的最佳平衡。

使用普通字典或使用搁置意味着没有字符串解析,因为密钥是您的标题,值是您的密码。

答案 1 :(得分: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()