Python下如何实现文件的修改操作?(附示例)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于Python下如何实现文件的修改操作?(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

今天我们来讨论下python下如何实现:打开文件—修改文件——关闭文件的操作

本文采用逐行解释的方法。

思路:

第一步:把文件读取出来
第二部:再用'w'模式写入到新文件
第三部:把原文件删除,并且把新文件重命名回原文件
这样就实现了文件的修改操作

我们先来看看原文件的内容

1

2

with open('xiakexing') as old_file:

    print(old_file.read())

1

2

3

4

5

6

赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。

十步杀一人,千里不留行。事了拂衣去,深藏身与名。

闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。

三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。

救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。

纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

我们想要做的修改是把第二行的千里不留行改成“万里不流行”
补充说明:用with open()格式可以同时打开两个文件,本例中实际上是打开文件xiakexing,并且创建文件xiakexing.bak,分别创建对应的文件对象old_file和new_file

1

2

3

4

5

6

7

8

9

10

11

with open('xiakexing') as old_file,open('xiakexing.bak','w') as new_file:

#采用for循环从文件对象old_file里迭代地读取文件,简单来讲就是一行一行地读取文件,这样内存中只存储了一行文件的内容,节省了内存,也防止文件过大时造成的“超载”

    for i in old_file:

        if '千里不留行' in i: #这里每读取一行我们就对其进行条件判断,判断该行是否是我们要找的那一行

            i = i.replace('千','万')#当找到该行时,把该行的内容替换成我们想要的内容

#每读取一行我们就在新文件中写入一行,不管该行有没有变化,总之就是读一行、写一行、读一行、写一行

        new_file.write(i)

#当for循环结束后,文件也已经被我们修改完毕了,这时应该删除旧文件,重命名新文件,为了实现这一目的,我们引入了os模块,os模块内主要是一些和操作系统有关的函数

import os           

os.remove('xiakexing') #删除原文件

os.rename('xiakexing.bak','xiakexing') #把新文件重命名回原文件名,最终实现了文件的修改

然后我们再来看看文件的内容

1

2

with open('xiakexing') as old_file:

    print(old_file.read())

1

2

3

4

5

6

赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。

十步杀一人,万里不留行。事了拂衣去,深藏身与名。

闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。

三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。

救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。

纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

这样,我们就实现了文件的修改。由于我们使用的是with open() as 的方法,所以不需要文件关闭的步骤,如果是通过file=open()的方式开打的文件,则必须在末尾加上关闭文件的语句。

以上就是Python下如何实现文件的修改操作?(附示例)的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python如何去除字符串中不想要的字符

Python中tornado下websocket客户端编程的介绍

Python学出来能做什么

Python怎么下载pip

Python如何导入图片

Python shell如何运行

Python介绍 list.sort方法和内置函数sorted

Python swapcase函数有什么用

Python基础知识点讲解

Python之post登录测试

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...