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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章