本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
Python 标准库 fileinput与文件迭代器
无间道 · 201浏览 · 发布于2022-09-01 +关注

这篇文章主要介绍了Python标准库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}


相关推荐

PHP实现部分字符隐藏

沙雕mars · 1327浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 910浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 974浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 964浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1090浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
各位好,我是无间道,欢迎互助粉丝!
分类专栏
小鸟云服务器
扫码进入手机网页