从解析的文件中列出内容

时间:2017-12-20 05:43:42

标签: python-3.x

我正在尝试解析特定分隔符的日志文件(" ##")。解析后,我得到每行的内容。然后我使用.split("")分割线条,它给出了我在每一行中寻找的字符串。我想把每一行都放到一个清单中。以下是我现在编码的方式。

LNsearch = "##"   
old = open(file)
with old as f
    for line in f:
        if LNsearch in line:
            LNfinder = line.split(" ")[1].replace('\n','')
            print(LNfinder)

results:

str1
str2
str3
str4
...

我希望得到[' str1',' str2',' str3',' str4','。 ..']

谢谢,

1 个答案:

答案 0 :(得分:0)

基于Patrick Haugh在评论中提到的想法。

我使用名为test.txt的文件,内容为:

## str1
## str2 X

## str3 X
## str4 X

下面的代码打开并读取test.txt。 for循环解析每一行并搜索" ##"和" "在线。 如果找到,则将索引1处的拆分项追加到名为lst的列表中,并删除\ n。 名为lst的列表最后会打印出来。

# Test file to read.
file = 'test.txt'

LNsearch = "##"

with open(file) as f:
    # Prepare list to collect wanted strings.
    lst = []

    for line in f:

        # Require "##" in line and " " in line to be valid.
        if LNsearch in line and " " in line:

            # Get 2nd substring and ensure no \n.
            LNfinder = line.split(" ")[1].replace('\n','')

            # This appends to the list named lst.
            lst.append(LNfinder)

    # Print final list.
    print('lst:', lst)

输出是:

lst: ['str1', 'str2', 'str3', 'str4']