处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕
Posted artfeb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕相关的知识,希望对你有一定的参考价值。
处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕:
预先有一个名为 cars.py 的文件,其内容为:
cars = [‘honda‘,‘yamaha‘,‘suzuki‘] print(cars) cars[0] = ‘ducati‘ print(cars) cars.append(‘马大哈‘) print(sorted(cars)) print(cars)
接下来写生成代码:
def check_file(): # 创建一个名为 check_file 的生成器函数, with open(‘cars.py‘, encoding=‘utf-8‘) as f: # 打开指定的文件,并作为 f for i in f: # 循环 f if ‘cars‘ in i: # 如果文件中包含 cars 就返回 i; yield i # 返回 i g = check_file() # 生成器 for i in g: # 循环所有包含 cars 的内容 print(i.strip()) # 打印,为了美观加上.strip()修饰
# 以上确实可以实现想要的功能,但是生成器函数是我们自己写的,是让外部的调用的,不可能把查找的文件和内容写到生成器函数中
# 要将生成器函数中的文件名和指定内容替换为位置参数,如下:
def check_file(filename,aim): # 创建一个生成器函数,并创建 2 个位置参数 with open(filename,encoding=‘utf-8‘) as f: # 打开指定文件 for i in f: # 循环指定的文件 if aim in i: # 如果文件中包含指定内容 yield i # 就将该文件返回 get = check_file(‘cars.py‘,‘cars‘) # 函数外部可以直接指定要查找的文件和内容 for i in get: print(i.strip())
# 这样就可以在函数外部指定要查找的文件和内容,每一行都输出到屏幕了。
以上是关于处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕的主要内容,如果未能解决你的问题,请参考以下文章