python-在txt文件中寻找字符串,并输出字符串所在行列

说明:

函数place():查询子字符串在大字符串中的所有位置

函数seek_in_txt_name(add,name):在txt文件中寻找字符串,并输出字符串所在行列

def place(zi,mu):
    """查询子字符串在大字符串中的所有位置"""
    len1 = len(zi)
    pl = []
    if zi == mu:
        pl.append(0)
    else:
        for each in range(len(mu)-len1):
            if mu[each:each+len1] == zi:       # 找出与子字符串首字符相同的字符位置
                pl.append(each)
    return pl

def seek_in_txt_name(add,name):
    """在txt文件中寻找字符串,并输出字符串所在行列
    add:文件的绝对路径
    name:待查的字符串"""
    with open(add) as f:  # 打开文件
        for each1 in f:
            if name in each1:  # 判断改文件内是否有待查字符
                print('===============================================')
                print('在文件【{0}】中找到关键字【{1}】'.format(add, name))
                break
            else:
                continue
        f.seek(0, 0)
        count = 1  # 计算行数
        for i in f:  # 遍历文件每一行,i表示文件f的i行字符串
            if name in i:  # 查看该行是否有待查字符
                # 有:储存字符所在行count,所在列lie
                pl = place(name, i)
                print('关键字出现在{0}行,第{1}个位置。'.format(count, pl))
                count += 1
            else:
                count += 1

猜你喜欢

转载自blog.csdn.net/weixin_40960364/article/details/105666992
今日推荐