qin_yin 发表于 2020-10-1 14:11:00

小甲鱼第30课课后题

import os

def print_pos(file_path,lines_pos,lines_key_pos,key):
    print('在文件%s中找到关键字【%s】' % (file_path,key))
    if decide == 'yes':
      print('关键字【%s】在%s行第%s位出现'% (key,lines_pos,lines_key_pos))


def char_pos(key,each_lines):
    start = 0
    pos = []
    for i in each_lines:
      start += 1
      if key == i:
            pos.append(start)
    return pos


def read_each_lines(file_name,key):
    lines = 0
    lines_pos_list = []
    file = open(file_name)
    for each_lines in file:
      lines += 1
      if key in each_lines:
            lines_pos_list.append(lines)
            pos = char_pos(key,each_lines)
            print_pos(file_name,lines_pos_list,pos,key)

#获取当前路径中的所有文件夹以及文件
def current_path(key):
    txt_path_list= []#保存txt文件路径

    for each_path in os.walk('D:\\测试文件'):
      for each_file in each_path:
            if os.path.splitext(each_file) == '.txt':
                temp = os.path.join(each_path,each_file)
                txt_path_list.append(temp)
                key_pos = read_each_lines(temp,key)


key= input('输入关键字')
decide = input('是否显示打印关键的具体位置')

current_path(key)

运行结果:
输入关键字小
是否显示打印关键的具体位置yes
在文件D:\测试文件\girl_2.txt中找到关键字【小】
关键字【小】在行第位出现
在文件D:\测试文件\girl_2.txt中找到关键字【小】
关键字【小】在行第位出现
在文件D:\测试文件\girl_2.txt中找到关键字【小】
关键字【小】在行第位出现

会重复打印文件路径,打印具体行数位置不准确
页: [1]
查看完整版本: 小甲鱼第30课课后题