說明:
函數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