堪称天花板级别的python读取文件的方法

前言

哈喽大家好呀,这里是蛋挞的第一篇文章 🤔
不知道跟你们说啥,那就直接来给你们分享一个关于python中读取文件的小技巧(小方法)吧
这这这这可是可以堪称天花板级别的读取方法!

请添加图片描述

今天我们来了解一下 fileinput 。

说到fileinput,可能90%的码农表示没用过,甚至没有听说过。

这不奇怪,因为在python界,既然open可以走天下,何必要fileinput呢?

但是,今天我还是要介绍fileinput这个方法,因为太奈斯了。

不止是香。是真香!

哼哼,不信吗?不看看怎么知道它香不香!

请添加图片描述

正文

1.方法介绍

基本用法

先来看一下fileinput的基本功能:

  • fileinput.filename():返回当前被读取的文件名。 —>在第一行被读取之前,返回 None。
  • fileinput.fileno():返回以整数表示的当前文件“文件描述符”。 —>当未打开文件时(处在第一行和文件之间),返回 -1。
  • fileinput.lineno():返回已被读取的累计行号。 —>在第一行被读取之前,返回0。在最后一个文件的最后一行被读取之后,返回该行的行号。
  • fileinput.filelineno():返回当前文件中的行号。 —>在第一行被读取之前,返回 0。—>在最后一个文件的最后一行被读取之后,返回此文件中该行的行号。
进阶用法
  • fileinput.isfirstline():如果刚读取的行是其所在文件的第一行则返回 True,否则返回 False。
  • fileinput.isstdin():如果最后读取的行来自 sys.stdin 则返回 True,否则返回 False。
  • fileinput.nextfile():关闭当前文件以使下次迭代将从下一个文件(如果存在)读取第一行;不是从该文件读取的行将不会被计入累计行数。直到下一个文件的第一行被读取之后文件名才会改变。
    —>在第一行被读取之前,此函数将不会生效;它不能被用来跳过第一个文件。 —>在最后一个文件的最后一行被读取之后,此函数将不再生效。
  • fileinput.close():关闭序列。

请添加图片描述

2.默认读取

代码示例
import fileinput

'当 Python 脚本没有传入任何参数时,fileinput 默认会以 stdin 作为输入源'
for line in fileinput.input():
    print(f'{
     line}')
运行结果

在这里插入图片描述
你输入的内容,程序都会读取并再输出。

俗称:复读机

3.处理一个文件

代码示例

import fileinput

'files 输入打开文件的名称即可'
with fileinput.input(files=('output.txt',)) as file:
    for line in file:
        print(f'{
     fileinput.filename()}{
     fileinput.lineno()}行:{
     line}',end='')
运行结果

请添加图片描述
解析:

  • fileinput 有且仅有这两种读取模式:‘r’,‘rb’;
  • fileinput.input() 默认使用 mode=‘r’ 的模式读取文件,如果你的文件是二进制的,可以使用mode=‘rb’ 模式。

4.处理批量文件

多文件序号连续排序

调用方法

  • fileinput.lineno()方法
代码示例
import fileinput

'files 输入打开文件的名称即可'
with fileinput.input(files=('output.txt','input.txt'
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值