相关文章推荐
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/ ...·  3 周前    · 
开朗的枕头  ·  精通 Oracle+Python,第 3 ...·  2 周前    · 
温文尔雅的青蛙  ·  python subprocess模块详解 ...·  1 周前    · 
直爽的牛肉面  ·  python/openpyxl/DataVa ...·  4 天前    · 
长情的火锅  ·  python读取excel,获得下拉选中所有 ...·  4 天前    · 
豪爽的香烟  ·  合肥地铁6号线一期,最新消息来了!|合肥市_ ...·  2 月前    · 
私奔的青椒  ·  振袖 - 搜狗百科·  1 年前    · 
知识渊博的柚子  ·  五险一金!福利多!购房补贴!中国航天科工六院 ...·  2 年前    · 
干练的薯片  ·  澶嶈嫃鐨勬椂浠h鍞愬 涓夊皯涓炬 - 百度·  2 年前    · 
酒量小的煎饼  ·  触岛漫画:《女子学院的男生》腾讯动漫点击量1 ...·  2 年前    · 
Code  ›  Python之文件内容修改开发者社区
fileinput python函数 python
https://cloud.tencent.com/developer/article/1566708
眼睛小的消防车
3 月前
py3study

Python之文件内容修改

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
发布
首页
学习
活动
专区
圈层
工具
MCP广场
返回腾讯云官网
py3study
首页
学习
活动
专区
圈层
工具
MCP广场
返回腾讯云官网
社区首页 > 专栏 > Python之文件内容修改

Python之文件内容修改

作者头像
py3study
发布 于 2020-01-07 14:29:45
发布 于 2020-01-07 14:29:45
3.7K 0 0
代码可运行
举报
文章被收录于专栏: python3 python3
运行总次数: 0
代码可运行

本文将介绍在python中在不改变原文件其它内容的条件下,插入或删除内容。

我们想要达到的效果是:在文件的任意行或位置插入或删除内容,不影响该位置前后的内容。

分为以下四种情况:

1. 替换某一行或者删除某行内容。

2. 在指定行后添加一行内容。

3. 替换文章中的某一内容(字符串)。

4. 删除文件中的某一关键词。

这里我们建议使用fileinput模块。首先简单介绍下这一模块:

fileinput模块可以对一个或者多个文件中的内容进行迭代,遍历等操作。使用这一模块可以方便的对文件进行遍历,格式化输出,查找,替换等操作。

基本用法是:

fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)

files:                  #文件的路径列表,默认是stdin方式,多文件['1.txt','2.txt',...]不同文件用逗号隔开。

inplace:                #是否将标准输出的结果写回文件,默认不取代。如果设置为True则将操作结果就地写到原文件中。

backup:                 #备份文件的扩展名,如.bak。如果该文件的备份文件已存在,则会自动覆盖。

bufsize:                #缓冲区大小,默认为0,如果文件很大,可以修改此参数。

mode:                   #读写模式,默认为只读。

openhook:               #该钩子用于控制打开的所有文件,比如说编码方式等。

模块内置函数:

fileinput.input()       #返回能够用于for循环遍历的对象。

fileinput.filename()     #返回当前文件的名称。

fileinput.lineno()       #返回当前已经读取的行的数量(或者序号)。

fileinput.filelineno()      #返回当前读取的行的行号。

fileinput.isfirstline()      #检查当前行是否是文件的第一行 。

fileinput.isstdin()      #判断最后一行是否从stdin中读取 。

fileinput.close()        #关闭队列 。

下面依次介绍各种情况的操作:

1. 替换某一行或者删除某行内容:

代码语言: javascript
代码 运行次数: 0
运行
复制
# Author:Allen Liu
# Data: 08/01/2017
This program is an example of file modification use fileinput module
import fileinput
for line in fileinput.input('data', backup='.bak',inplace = True):
    # 删除含有某一关键词的行
    if 'Beijing' in line:     
    else:
        print(line.rstrip())
    # 替换掉还有某一关键词的行
    print(line.rstrip().replace('Beijing!','Jinan!')

2. 在某一行后添加一行

代码语言: javascript
代码 运行次数: 0
运行
复制
# Author:Allen Liu
# Data: 07/27/2017
This program is an example of file modification use fileinput module
import fileinput
for line in fileinput.input('data', backup='.bak',inplace = True):
    # 在指定行后添加一行
    if fileinput.lineno() == 1:
        print(line.rstrip())
        print('Hello world!')
    else:
        print(line.rstrip())

 
推荐文章
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/csv读取关键字 - Wilson_Blogs
3 周前
开朗的枕头  ·  精通 Oracle+Python,第 3 部分:数据解析
2 周前
温文尔雅的青蛙  ·  python subprocess模块详解 - 三只松鼠
1 周前
直爽的牛肉面  ·  python/openpyxl/DataValidation给 excel添加下拉列表_excel data validation list
4 天前
长情的火锅  ·  python读取excel,获得下拉选中所有选项_python获取下拉菜单内容 excel
4 天前
豪爽的香烟  ·  合肥地铁6号线一期,最新消息来了!|合肥市_新浪财经_新浪网
2 月前
私奔的青椒  ·  振袖 - 搜狗百科
1 年前
知识渊博的柚子  ·  五险一金!福利多!购房补贴!中国航天科工六院41所|五险一金|固体|科工|航天|购房_手机网易网
2 年前
干练的薯片  ·  澶嶈嫃鐨勬椂浠h鍞愬 涓夊皯涓炬 - 百度
2 年前
酒量小的煎饼  ·  触岛漫画:《女子学院的男生》腾讯动漫点击量15亿,广泛布局校园、玄幻、热血、恋爱题材|三文娱新星计划 - 知乎
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号