Python 从文件中获取字符串

Python 从文件中获取字符串,python,file-io,python-2.7,Python,File Io,Python 2.7,我有一个标题和密码文件,格式如下: <title> <password> ... ... 我需要搜索该文件并返回一个在Python2.7中给定标题的密码。最好的方法是什么?我不熟悉文件,因此如果有更好的方法来格式化此任务的文件,请随意回答。如果您的文件可能非常大,并且希望在加载到ram时保存,您可以在每一行上循环,检查所需的标题值。这种方法的性能将完全取决于扫描通过匹配线的速度 如果你的文件是一个合理的大小,可以被读取到内存中,你可以考虑使用或存储文件,并将其序列化

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

<title> <password>
...

...

我需要搜索该文件并返回一个在Python2.7中给定标题的密码。最好的方法是什么?我不熟悉文件,因此如果有更好的方法来格式化此任务的文件,请随意回答。

如果您的文件可能非常大,并且希望在加载到ram时保存,您可以在每一行上循环,检查所需的标题值。这种方法的性能将完全取决于扫描通过匹配线的速度

如果你的文件是一个合理的大小,可以被读取到内存中,你可以考虑使用或存储文件,并将其序列化为<代码> DICT。这样,您就可以读入文件并立即将标题作为一个键拉出

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


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

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

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()

如果你的文件是一个合理的大小,可以被读取到内存中,你可以考虑使用或存储文件,并将其序列化为<代码> DICT。这样,您就可以读入文件并立即将标题作为一个键拉出

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


使用普通dict或shelve都意味着不进行字符串解析,因为键是标题,值是密码。

此文件是否需要保持可读性,还是仅用于保存数据?此文件的大小可以有多大?不是文件的一部分,它不需要人工读取,可以是任意大小。此文件是否需要保持人工可读性,还是仅用于保存数据?这个文件的大小可以有多大?它不是文件的一部分,不需要人工读取,它可以是任何大小。如果一行是
“我的神奇标题aPassword”
?公平点,编辑地址是病理学,但不是无数其他方面。如果line.startswith(target)建议
,可能更安全一些
因为缺少OP的规范。同样,如果行是
“My AmazingTitle aPassword”
?@jdi感谢您的建议。如果行是
“My AmazingTitle aPassword”
?公平点说,编辑解决了那个病理问题,但不是无数其他问题。如果行是
“My AmazingTitle aPassword”
,则建议更安全(目标)因为缺少OP的规范。同样,如果行是
“My AmazingTitle aPassword”
?@jdi感谢您的建议。
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()