码迷,mamicode.com
首页 > 其他好文 > 详细

处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕

时间:2019-05-01 23:53:23      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:输出   with   函数   文件名   文件   strip   with open   pytho   utf-8   

处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕:

预先有一个名为 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())

  # 这样就可以在函数外部指定要查找的文件和内容,每一行都输出到屏幕了。

处理文件,用户指定要查找的文件和内容,讲文件中包含要查找内容的每一行都要输出到屏幕

标签:输出   with   函数   文件名   文件   strip   with open   pytho   utf-8   

原文地址:https://www.cnblogs.com/artfeb/p/10801124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!