You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python在文本文件中查找子字符串?

Python 在文本文件中查找子字符串的方法(含in/not in操作符详解)

核心逻辑:in/not in的本质

in和not in是Python判断子字符串是否存在于目标字符串的基础操作符,处理文本文件时,只需把文件内容(或每行内容)转为字符串,就能直接用这两个操作符判断。


方法1:一次性读取文件后查找

适合小文件,代码简洁:

# 替换成你的文件路径
file_path = "example.txt"
# 要查找的子字符串
target = "hello world"

# with语句自动管理文件的打开与关闭
with open(file_path, 'r', encoding='utf-8') as f:
    # 读取整个文件内容到字符串变量中
    file_content = f.read()

# 用in判断子串是否存在
if target in file_content:
    print(f"文件中存在子串:{target}")
else:
    print(f"文件中未找到子串:{target}")

方法2:逐行查找(适合大文件)

如果文件过大,一次性读取会占用过多内存,逐行读取更高效,还能定位子串所在行号:

file_path = "large_file.txt"
target = "important content"
is_found = False

with open(file_path, 'r', encoding='utf-8') as f:
    # enumerate获取行号,start=1让行号从1开始计数
    for line_num, line_content in enumerate(f, start=1):
        if target in line_content:
            print(f"在第{line_num}行找到子串:{target}")
            is_found = True
            # 若只需找第一个匹配项,可直接break终止循环
            # break

if not is_found:
    print(f"文件中未找到子串:{target}")

not in的用法

和in逻辑相反,用来判断子串不存在:

with open(file_path, 'r', encoding='utf-8') as f:
    file_content = f.read()

if "unwanted string" not in file_content:
    print("文件中没有这个子串")
else:
    print("文件中存在这个子串")

实用技巧

  1. 忽略大小写匹配:
    不需要区分大小写时,可把文件内容和目标子串统一转成小写(或大写):
    if target.lower() in file_content.lower():
        print("找到匹配(忽略大小写)")
    
  2. 精确匹配整行:
    要判断某一行完全等于目标字符串(排除行尾换行符),用strip()去除空白字符后比较:
    if line_content.strip() == target:
        print(f"第{line_num}行完全匹配目标内容")
    

内容的提问来源于stack exchange,提问作者Chankapure Kameshwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:15:29