使用Python

时间:2016-11-10 20:54:48

标签: python regex string

我有一个相当大的.txt文件 - 大约70K行。

我正在尝试使用Python查找字符串“无法更新”的所有实例。

当我打开文件并在“无法更新”时使用ctrl-f时,它会立即找到它;但是,在Python,.find()中使用RegEx时,或者如果在,它只是找不到字符串。请参阅下面我使用的三种方法:

RegEx方法:

f = open('C:\PerfupD.txt', 'r')

strings = re.findall('Cannot update', f.read())

print(strings)

.find():

with open('C:\PerfUpD.txt', 'r') as file:

    for line in file:

          if line.find('Cannot update') != -1:

              print("Errors found")

如果在:

with open('C:\PerfUpD.txt', 'r') as file:

    for line in file:

          if 'Cannot update' in line:

              print("Errors found")

我甚至尝试搜索“Ca”但它找不到任何东西,但是当我只搜索“C”时它发现了大量的实例......一方面注意到这个.txt文件是从一个网站生成的。最初将文件保存为.err文件。然后我把它保存为.txt。

我唯一能想到的是,文件中的数据可能是以其他形式生成的,但在打开时看起来像普通文本。任何见解都非常感谢!

1 个答案:

答案 0 :(得分:0)

你可能只是这样做:

f = open('your file.txt', 'r+')
for line in f:
    if 'Cannot Update' in line:
        print('error found')

不需要正则表达式