| 
 | 
 
 
 楼主 |
发表于 2018-8-25 19:31:06
|
显示全部楼层
 
 
 
25.查找txt文件中的关键字,并输出 
encoding = 'UTF-8' 
import os 
 
def print_pos(key_dict): 
    keys = key_dict.keys() 
    keys = sorted(keys) 
    for each_key in keys: 
        print('关键字出现在第%s行,第%s个位置。' % (each_key, str(key_dict[each_key]))) 
 
def pos_in_line(line, key): 
    pos = [] 
    begin = line.find(key) 
    while begin != -1: 
        pos.append(begin + 1) 
        begin = line.find(key, begin + 1) 
 
    return pos 
 
def search_in_file(file_name, key): 
    f = open(file_name) 
    count = 0 
    key_dict = dict() 
 
    for each_line in f: 
        count += 1 
        if key in each_line: 
            pos = pos_in_line(each_line, key) 
            key_dict[count] = pos 
 
    f.close() 
    return key_dict 
 
def search_file(key, detail): 
    all_files = os.walk(os.getcwd()) 
    txt_files = [] 
 
    for i in all_files: 
        for each_file in i[2]: 
            if os.path.splitext(each_file)[1] == '.txt': 
                each_file = os.path.join(i[0], each_file) 
                txt_files.append(each_file) 
                 
    for each_txt_file in txt_files: 
        key_dict = search_in_file(each_txt_file, key) 
        if key_dict: 
            print('======================================================') 
            print('在文件【%s】中找到关键字【%s】' % (each_txt_file, file)) 
            if detail in ['YES', 'yes', 'Yes']: 
                print_pos(key_dict) 
 
key = input('请将该代码放于待查找的文件夹内,请输入关键字:') 
detail = input('请问是否需要打印关键字【%s】在文件中的具体位置(YES/NO):' % key) 
search_file(key, detail) 
加了UTF-8都不行,郁闷 |   
 
 
 
 |