返回顶部
首页 > 资讯 > 后端开发 > Python >Python 标准库 fileinput与文件迭代器
  • 283
分享到

Python 标准库 fileinput与文件迭代器

2024-04-02 19:04:59 283人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 使用 fileinput 进行迭代2. 文件迭代器3. 字典的 setdefault 方法使用举例1. 使用 fileinput 进行迭代 fileinput 模块可以对一

1. 使用 fileinput 进行迭代

fileinput 模块可以对一个或多个文件中的内容进行迭代、遍历等操作。该模块的 input() 函数有点类似文件 readlines 函数,但区别明显:

  • readlines 是一次性读取文件中的全部内容,如果文件较大的话,会占用大量内存;
  • input 返回的则是一个迭代对象,结合 for 循环使用,典型用法如下:
import fileinput

for line in fileinput.input(filename):
    process(line)

实例:

import fileinput

for line in fileinput.input("D:/Users/data.txt"):
    print(line)

注意:input 函数有多个参数:分别设置读取文件路径、读写模式、编码方式、缓冲区大小、备份文件扩展名等。

此外,fileinput 模块还有很多常用的函数,这里介绍几个最常用的。

函数名 说明:

  • fileinput.input() 返回能够用于 for 循环遍历的对象
  • fileinput.filename() 返回当前文件的名称
  • fileinput.lineno() 返回当前已经读取的行的数量(或者序号)
  • fileinput.filelineno() 回当前读取的行的行号
  • fileinput.isfirstline() 检查当前行是否是文件的第一行
  • fileinput.isstdin() 判断最后一行是否从 stdin 中读取
  • fileinput.close() 关闭队列

2. 文件迭代器

#打开文件,一次写入多行内容
f = open("D:/Users/data.txt",'w')
content = ['append infORMation1\n','append information2']
f.writelines(content)
f.close()

#打开文件,通过文件迭代器遍历文件
f = open("D:/Users/data.txt",'r')
for line in f:
    print('content:',line)
# 或者 将读取内容转化为字符串列表 效果类似 readlines
lines = list(f)
print(lines)
#关闭文件
f.close()

执行结果(省略空行):

content: append information1
content: append information2

3. 字典的 setdefault 方法使用举例

如果仅当字典中不存在某个键值对时,才插入到字典中;如果存在,不必插入(也就不会修改键值对)。

这种场景,使用字典自带方法 setdefault :

In [35]: d = {'a':1,'b':2}

In [36]: r = d.setdefault('c',3) # r: 3

In [37]: r
Out[37]: 3

In [38]: d
Out[38]: {'a': 1, 'b': 2, 'c': 3}


In [39]: r = d.setdefault('c',33) # r:3,已经存在'c':3的键值对,所以setdefault时d无改变

In [40]: r
Out[40]: 3

In [41]: d
Out[41]: {'a': 1, 'b': 2, 'c': 3}

到此这篇关于python 标准库 fileinput与文件迭代器的文章就介绍到这了,更多相关Python fileinput 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 标准库 fileinput与文件迭代器

本文链接: https://lsjlt.com/news/120288.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 标准库 fileinput与文件迭代器
    目录1. 使用 fileinput 进行迭代2. 文件迭代器3. 字典的 setdefault 方法使用举例1. 使用 fileinput 进行迭代 fileinput 模块可以对一...
    99+
    2024-04-02
  • python文件替代fileinput模
    一,文件替代:此时对文件中的内容不真实替代,跟sed 不加-i,并且在屏幕上会打印出来import fileinput for line in fileinput.input('if.py'): line = line.re...
    99+
    2023-01-31
    文件 python fileinput
  • Python进阶:迭代器与迭代器切片
    2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇。合并后,修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动。原系列的单篇就不删除了,毕竟也是有单独成篇的作用。特此声明,请阅读改...
    99+
    2023-01-30
    进阶 迭代 切片
  • Python标准库pathlib操作目录和文件
    目录pathlib 基本组件常用属性和基本方法os and os.path VS pathlib总结学习 Python 时,尤其是在进行文件操作和数据处理时,经常会处理路径问题。最常...
    99+
    2024-04-02
  • Python读取文件比open快十倍的库fileinput
    目录1. 从标准输入中读取2. 单独打开一个文件3. 批量打开多个文件4. 读取的同时备份文件5. 标准输出重定向替换6. 不得不介绍的方法7. 进阶一点的玩法8. 列举一些实用案例...
    99+
    2024-04-02
  • Python迭代器与生成器
    生成器仅仅拥有生成某种东西的能力,如果不用__next__方法是获取不到值得。创建一个生成器函数>>> def scq(): ...    print("11") # 当函数代码块中遇到yield关键字的时候,这个函数就是...
    99+
    2023-01-31
    生成器 迭代 Python
  • Ruby迭代器及文件的输入与输出
    目录前言Ruby 迭代器Ruby each 迭代器语法实例Ruby collect 迭代器语法实例Ruby 文件的输入与输出puts 语句实例gets 语句实例putc 语句实例pr...
    99+
    2023-05-15
    Ruby 迭代器输入与输出 Ruby文件输入与输出
  • 代码解析python标准库logging模块
    目录问题1:如何获取caller的(文件名,行号,函数名)?findCaller内容如下:currentframe函数的定义:问题2: Logger对象的层级,父子关系如何实现的?M...
    99+
    2024-04-02
  • Python 的迭代器与zip详解
    目录关于迭代器关于zip总结:首先抛出一个困扰本人许久的问题: nums = [1,2,3,4,5,6] numsIter = iter(nums) for _ in zip(*...
    99+
    2024-04-02
  • python迭代器与生成器详解
    例子 老规矩,先上一个代码: def add(s, x): return s + x def gen(): for i in range(4): yield i base = gen() ...
    99+
    2022-06-04
    生成器 详解 迭代
  • python迭代器与生成器小结
    2016.3.10关于例子解释的补充更新 源自我的博客 例子 老规矩,先上一个代码: def add(s, x): return s + x def gen(): for i in range(4): ...
    99+
    2023-01-31
    生成器 小结 迭代
  • python基础:迭代器与生成器
    一、迭代器 迭代器只能向前访问,不能后退字典,列表,元组,字符串,range都是可以迭代的对象。 1、创建迭代器 `dict={1:3,2:4,3:5,4:6}key = iter(dict)print(key)print(next(key...
    99+
    2023-01-31
    生成器 迭代 基础
  • Python生成器与迭代器详情
    目录1、生成器 2、迭代器与可迭代的生成器1、生成器 现在可以通过生成器来直接创建一个列表,但是由于内存的限制,列表的容量肯定是有限的,如果我们需要一个包含几百个元素的列表,但是每...
    99+
    2024-04-02
  • Python标准库13 循环器 (itertools)
    在循环对象和函数对象中,我们了解了循环器(iterator)的功能。循环器是对象的容器,包含有多个对象。通过调用循环器的next()方法 (__next__()方法,在Python 3.x中),循环器将依次返回一个对象。直到所有的对象遍历穷...
    99+
    2023-06-02
  • 一文搞懂​​​​​​​python可迭代对象,迭代器,生成器,协程
    目录设计模式:迭代python:可迭代对象和迭代器为什么要有生成器?python的生成器实现协程设计模式:迭代 迭代是一种设计模式,解决有序便利序列的问题。通用的可迭代对象需要支持d...
    99+
    2024-04-02
  • Python生成器与迭代器怎么用
    这篇文章给大家分享的是有关Python生成器与迭代器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、生成器现在可以通过生成器来直接创建一个列表,但是由于内存的限制,列表的容量肯定是有限的,如果我们需要一个...
    99+
    2023-06-25
  • python基础之迭代器与生成器
    目录1. 迭代器1.1 迭代器的使用1.2 创建类的迭代器2. 生成器2.1 生成器的使用2.2 生成器表达式总结 1. 迭代器 1.1 迭代器的使用 迭代器对象从集合的第一个元素开...
    99+
    2024-04-02
  • Python 迭代器与生成器:优化 Python 代码的性能
    ...
    99+
    2024-04-02
  • 怎么理解Python的迭代器与zip
    这篇文章主要讲解了“怎么理解Python的迭代器与zip”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Python的迭代器与zip”吧!首先抛出一个困扰本人许久的问题:nums&nb...
    99+
    2023-06-25
  • 正确理解python迭代器与生成器
    目录一、迭代器二、生成器三、生成器函数3.1、zip(可迭代对象1,可迭代对象2......)3.2、enumerate(iterable[,start])一、迭代器 迭代器就是iter(可迭代对象函数)返回的对象,...
    99+
    2022-06-02
    python 迭代器 python 生成器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作