0

我正在尝试打开一个文本文件并查找 string Num_row_lables。如果 的值Num_row_labels大于或等于 10,则打印文件名。

在下面的示例中,我的文本文件test.mrk包含以下格式的一些文本: Ps,我的文本文件没有Num_row_labels >= 10. 它总是有“ equal to”。

Format= { Window_Type="Tabular", Tabular= { Num_row_labels=10 } }

所以我创建了一个变量teststring来保存我将要查看的模式。然后我打开了文件。

然后使用re,我进入Num_row_labels=10了我的名为 match 的变量。使用group()on match,我提取了我想要的阈值并使用int()转换的string to int.

find/print如果文本文件的 Num_row_labels = 10 或任何大于 10 的 # ,我的目的是读取文本文件到Num_row_labels 的值以及文件名。

这是我的测试代码:

import os
import os.path
import re

teststring = """Format= { Window_Type="Tabular", Tabular= { Num_row_labels=10 } }"""
fname = "E:\MyUsers\ssbc\test.mrk"
fo = open(fname, "r")
match = re.search('Num_row_labels=(\d+)', teststring)
tnum = int(match.group(1))


if(tnum>=10):
        print(fname) 

如何确保在打开文件的内容中搜索匹配项并检查 tnum>=10 的条件?我的测试代码只会根据最后 4 行简单地打印文件名。我想确保搜索遍及我的文本文件的内容。

4

2 回答 2

4

所以你想要做的是将整个文件作为字符串读出,并在该字符串上搜索你的模式

with open(fname, "r") as fo:
    content_as_string = fo.read()
    match = re.search('Num_row_labels=(\d+)', content_as_string)
    # do want you want to the matchings
于 2012-06-27T20:11:03.900 回答
1

Python代码根据条件读取文件内容

    file = '../input/testtxt/kaggle.txt'
    output = []
    with open(file, 'r') as fp:
        lines = fp.readlines()
        for i in lines:
            if('Image for' in i):
                output.append(i)
            
    print(output)
于 2021-06-21T14:21:29.990 回答