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

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

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

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

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

时间: 2024-08-13 19:46:16

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

Dream------Java--ant zip 对压缩文件进行指定位置的修改

ant zip 对压缩文件进行指定位置的修改 实现功能: 对2中文件进行修改: 需求: 在XX文件中,从二进制流的200字节位置开始,往后的30位字节数量.插入一个值 由于涉及到公司内部,不方便写太多. 代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; impo

如何在Windows 10上为用户指定硬盘空间配额

若一台Windows 10 PC供多个用户使用,那这台PC很可能面临硬盘空间被Windows 10中的某个用户使用殆尽的困扰. 好在在Windows 10中,微软为计算机的管理员提供了一个便利的功能,即"配额设置". 通过配额设置,计算机的管理员可以为Windows 10 PC上的每个用户分指定硬盘配额,以防计算机的硬盘空间被某个用户的文件或者数据填满. 要了解如何为Windows 10 PC上的用户指定硬盘配额,请参阅本期教程给出的详细步骤. 基于所有新用户的磁盘配额分配[以本地磁盘

scponly 限定用户不能SSH登录,可以SFTP SCP传文件到指定目录

公司基于安全考虑,要求给用户SFTP,SCP权限可以上传相关文件到指定目录,但不能SSH登录,考虑到RSSH也是个解决方案,但有点麻烦,最后找到了SCPONLY 直接说下配置过程, 如果你的系统是CENTOS,那直接用这个配置 1.wget -c http://nchc.dl.sourceforge.net/s - nly/scponly-4.8.tgz #scponly 支持的软件有scp.sfp.rsync.subversion.gftp等客户端 2. ./configure –prefix

Linux中常用的查找文件的命令

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which       查看可执行文件的位置 whereis    查看文件的位置 locate       配合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex) 1.which 语法:  [r

小黑的日常折腾-复制外部命令的可执行文件和依赖库文件到指定目录下的对应目录

清明三天假期基本都是在写脚本中度过了,今天又折腾了一个新的脚本,该脚本的作用是快速复制一个或多个命令的可执行文件和依赖库文件到一个模拟的根文件系统下的相应目录下,这个脚本平时运维估计用不到,只有自己制作一个小的Linux发行版时才有可能使用该脚本. 脚本具体的功能如下: 1)提示用户选择要从文本中读取要复制的命令名还是从当前终端中交互式输入命令名. 2)用户选择前者,会自动使用vim打开一个文件,用户根据格式说明填入要复制的命令的名称,可以是多个命令,保存退出后自动执行复制操作. 3)用户选择后

Linux大杀器命令:查找所有目录下的所有文件的字符串命令

命令为: *find . |xargs grep -ri "bspSetPonTxDisable" -l* 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如

[IOS:OC]数据存储:文件/用户配置/归档的作用以及用法实例

首先得了解SandBox沙盒 本质就是一个提供给我们app的专用文件夹我们可以获取到沙盒的path:NSString *home = NSHomeDirectory(); 打印出来复制可以通过Finder-前往-前往文件夹就看可以找到在mac下该项目沙盒的位置了各位刚接触ios的童鞋应该知道在Bundle中包含了所有的资源文件和可执行文件在沙盒目录下我们可以看到三个文件夹Documents. Library以及tmp,其中Library下还包含两个目录: Documents:保存应用运行时生成的

Java版本的删除指定目录下名叫“xxx.txt”文件名的文件

以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也就没有继续深究,就把这个bug给放过了. 最近一段时间在学习android,肯定要用的java了,就用java实现了下,思路的话,肯定还是以前的了,结果还是出错,后来仔细的看了看代码,其实是自己的bug. 把代码贴下:(主要功能,删除指定目录下名叫"pylist.txt"的所有文件,使用递

linux下文件的简单操作(创建、查看、链接、打包压缩、查找)

对文件的基本操作有很多零散的命令,做一个小总结,基本分为 创建.查看.链接.打包压缩.查找 创建: mkdir:创建目录 mkdir [-p 建立多层目录] [-m 同时设置权限] mkdir -p /test/test mkdir -m 774 test touch:创建文件/修改文件时间参数 touch [-a 修改访问时间到当前时间] [-c 修改权限和内容修改时间到当前时间] [-m 修改具体内容修改时间到当前时间] [-t 修改成指定的时间] filename access time: