前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python模块之fileinput

Python模块之fileinput

作者头像
用户1278550
发布2018-08-09 10:38:22
5690
发布2018-08-09 10:38:22
举报
文章被收录于专栏:idbaidba

一 简介 fileinput 是python 提供的一个可以快速遍历,修改一个或者多个文件的模块。我们可以使用该模块进行文本替换 并做文件备份。

二 使用 2.1 使用方法 fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None) files 为要读入的文件 或者文件列表 files=1.txt files=['1.txt','2.txt'] inplace 是原地替换与否,为True时表示重写原文件。默认为False。 backup 备份要替换的文件的后缀 backup='.bak' files='1.txt' 备份的文件名称为 1.txt.bak mode 读写模式,默认为只读 bufsize 读写文件的缓冲区大小,默认为0 ,如果文件比较大 则需要调整该值。

  1. import fileinput
  2. def process(line):
  3. do_something
  4. for line in fileinput.input():
  5. process(line) #处理文件的行 然后重新写入源文件

2.2 常用的函数:

  1. fileinput.input() # 读取文件的内容
  2. fileinput.filename() # 文件的名称
  3. fileinput.lineno() # 当前读取行的数量
  4. fileinput.filelineno() # 读取行的行号
  5. fileinput.isfirstline() # 当前行是否是文件第一行
  6. fileinput.isstdin() # 判断最后一行是否从stdin中读取
  7. fileinput.close() # 关闭队列

2.3 例子

  1. In [4]: for line in fileinput.input('1.txt',inplace=1,backup='.bak'):
  2. ...: print line.rstrip() + ' line'
  3. ...:
  4. In [5]: pwd
  5. Out[5]: u'/Users/yangyi'
  6. In [6]: ls 1.txt*
  7. 1.txt
  8. 1.txt.bak

查看备份文件

  1. In [7]: cat 1.txt.bak
  2. AA:BB:CC
  3. aa:30:6
  4. cc:50:3
  5. dd:20:7
  6. bb:10:2
  7. ee:40:4
  8. ee:60:1

查看源文件,已经被修改了

  1. In [8]: cat 1.txt
  2. AA:BB:CC line
  3. aa:30:6 line
  4. cc:50:3 line
  5. dd:20:7 line
  6. bb:10:2 line
  7. ee:40:4 line
  8. ee:60:1 line

三 小结 本文是简单介绍了fileinput 的使用方式 ,具体更详细的内容可以参考 官方文档

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档