【问题标题】:Find String in a txt file using Python使用 Python 在 txt 文件中查找字符串
【发布时间】:2016-11-10 20:54:48
【问题描述】:

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

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

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

正则表达式方法:

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。

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

【问题讨论】:

  • 所有 3 种方法都应该有效。您可以发布输入文件的摘录吗?我怀疑是大小写问题或非标准的空格字符或可能加倍。
  • 文件的路径是否可能已关闭?您可以毫无问题地打印文件的所有行吗?
  • 我刚走出去,但会尽快离开。仅供参考,我对 vba 非常擅长,并编写了一个宏来复制 txt 文件中的每一行并将其粘贴到单元格中,但它不会向单元格打印任何内容...
  • 查看下面的http://stackoverflow.com/questions/40536818/find-string-in-a-txt-file-using-python/40537121#40537121 答案。基本上你的代码中有一个逻辑错误。找到字符串时 find() 返回 -1。
  • 小摘录:跳过 zzzzzz 投资组合,因为截止日期是 16 年 7 月 11 日。处理安全类型组(按货币)。跳过 zzzzzz 投资组合,因为截止日期是 16 年 1 月 22 日。处理安全类型组(按货币)。 zzzzzz 性能(汇总)未更新。无法读取 zzzzzz 性能(汇总)或报告日期范围早于投资组合的开始日期。无法更新 zzzzzz 投资组合,因为截止日期是 11-07-16。处理安全类型组(按货币)。

标签: python regex string


【解决方案1】:

你可以这样做:

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

不需要正则表达式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    相关资源
    最近更新 更多