繁体   English   中英

从文件中读取特定行

[英]reading specific lines from a file

从文件中仅读取特定行(基于匹配文本)的最佳方法是什么? 这就是我现在正在做的:

match_txt = "lhcb"
for inFile in os.listdir('.'):
    readFile = open(inFile, 'r')
    lines = readFile.readlines()
    readFile.close()

    for line in lines:
        if line.find(match_txt)==0:
           #< do stuff here >

即我从当前目录中的所有文件中逐行读取行,仅带有“ lhcb”。 这是最好的方法吗? 可以不先将整个文件加载到内存中就可以完成吗?

为此,无需将整个文件加载到内存中,只需遍历该文件即可:

match_txt = "lhcb"
for file_name in os.listdir('.'):
    with open(file_name) as f:
        for line in f:
            if line.startswith(match_txt):
                #< do stuff here >

如果要在该行的任何地方检查match_txt ,可以使用

if match_txt in line:

您的示例代码等效于检查行是否 match_txt

如果您使用的是非常老的Python版本,但没有with语句,则必须手动关闭文件:

match_txt = "lhcb"
for file_name in os.listdir('.'):
    f = open(file_name)
    for line in f:
        if line.startswith(match_txt):
            #< do stuff here >
    f.close()

您应该研究str.startswith()函数。

if line.startswith("text"):

http://docs.python.org/library/stdtypes.html#str.startswith

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM