python基础_文件操作实现全文或单行替换的方法


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

这篇文章主要介绍了关于python基础_文件操作实现全文或单行替换的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

python修改文件时,使用w模式会将原本的文件清空/覆盖。可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开。

1、替换文本中的taste 为 tasting

1

2

3

4

5

Yesterday when I was young

昨日当我年少轻狂

The taste of life was sweet

生命的滋味是甜的

As rain upon my tongue

1

2

3

4

5

6

7

8

9

10

#将文件读取到内存中

with open("./fileread.txt","r",encoding="utf-8") as f:

 lines = f.readlines()

#写的方式打开文件

with open("./fileread.txt","w",encoding="utf-8") as f_w:

 for line in lines:

  if "taste" in line:

   #替换

   line = line.replace("taste","tasting")

  f_w.write(line)

2、全文中搜索替换或者单行替换

1

2

3

4

5

6

7

8

9

10

#文本内容

Yesterday when I was young

昨日当我年少轻狂

The taste of life was sweet

生命的滋味是甜的

As rain upon my tongue

taste

taste

taste

taste

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

#定义一个函数,带有4个参数

#x 表示要更新的文件名称

#y 表示要被替换的内容

#z 表示 替换后的内容

#s 默认参数为 1 表示只替换第一个匹配到的字符串

# 如果参数为 s = 'g' 则表示全文替换

def string_switch(x,y,z,s=1):

 with open(x, "r", encoding="utf-8") as f:

  #readlines以列表的形式将文件读出

  lines = f.readlines()

  

 with open(x, "w", encoding="utf-8") as f_w:

  #定义一个数字,用来记录在读取文件时在列表中的位置

  n = 0

  #默认选项,只替换第一次匹配到的行中的字符串

  if s == 1:

   for line in lines:

    if y in line:

     line = line.replace(y,z)

     f_w.write(line)

     n += 1

     break

    f_w.write(line)

    n += 1

   #将剩余的文本内容继续输出

   for i in range(n,len(lines)):

    f_w.write(lines[i])

  #全局匹配替换

  elif s == 'g':

   for line in lines:

    if y in line:

     line = line.replace(y,z)

    f_w.write(line)

测试

1)默认参数 1,只替换匹配到的第一行

1

2

3

4

5

6

7

8

9

10

11

12

string_switch("fileread.txt","taste","tasting")

  

#结果

Yesterday when I was young

昨日当我年少轻狂

The tasting of life was sweet

生命的滋味是甜的

As rain upon my tongue

taste

taste

taste

taste

2)全局替换

1

2

3

4

5

6

7

8

9

10

11

12

string_switch("fileread.txt","taste","tasting","g")

  

#结果

Yesterday when I was young

昨日当我年少轻狂

The tasting of life was sweet

生命的滋味是甜的

As rain upon my tongue

tasting

tasting

tasting

tasting

以上就是python基础_文件操作实现全文或单行替换的方法的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python扩展内置类型的实现方法分析

如何进行数据库连接?(实例解析)

Python语言变量命名规则

《流畅的Python》怎么样

Python中递归记录指定后缀名的文件示例分享

Python怎么画直线

Python中std是什么

Python如何将字符串等长分割

Python怎么安装有setup.py的包

Python docx 中文字体设置的操作方法

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




打赏

取消

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

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

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

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

评论

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