Python文件的高级应用及修改的两种方式

一、文件的高级应用

1.1 r+(既可读又可写)

with open('test.py', 'r+', encoding='utf8') as fr:
    data = fr.read()
    print(fr.writable())
    fr.write('x = 10')
    print(data)
------------------------------------------------
True
'''
sean sb
tank sb
jason sb
nick 大帅比
'''

1.2 w+(不建议使用)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
with open('test.py', 'w+', encoding='utf8') as fr:
    print(fr.readable())
    fr.write('x = 10')
    data =  fr.read()
    print(data)
----------------------------------------
True    

1.2 a+(a的指针在末尾。更不建议使用)

with open('test.py', 'a+', encoding='utf8') as fr:
    fr.seek(1, 0)   #表示指针从头开始,偏移一位
    data = fr.read()  # 指针在末尾
    print(data)
-----------------------------------------------------
 = 10
二、文件的内置方法

2.1 seek 指针(按字节位移动)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
with open('test.py', 'rb') as fr:
    fr.seek(1)  # 1表示位移1位,默认从文件头开始
    fr.seek(1, 0)  # 1表示偏移1位,0表示从头开始  
    fr.seek(2, 1)  # 2表示偏移2位,1表示从当前位置开始  
    fr.seek(0, 2)  # 0表示偏移0位,2表示文件末开始,把指针移到文件末

2.2 tell(告诉当前指针的位置) (按字节移动)

with open('test.py', 'r', encoding='utf8') as fr:
    fr.seek(2, 0)   #从文件头开始,偏移2位
    print(fr.tell())     
-----------------------------------------------------
2

2.3 read(n) (读几个字符)

with open('test.py', 'r', encoding='utf8') as fr:
    print(fr.read(2))  # 读了2个字符也就是读了6个字节

2.4 truncate 截断 (按字节移动)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
with open('test.py', 'a', encoding='utf8') as fr:
	fr.truncate(2)  # 把2个字节后面的东西全清空 
	#一个英文是1个字节,一个中文是3个字节
三、文件修改的两种方式

3.1 方式一

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import os
with open('test.py', 'r', encoding='utf8') as fr, \
        open('test_swap.py', 'w', encoding='utf8') as fw:
    data = fr.read()   #全部读入内存,如果文件很大会很卡
    data = data.replace('sb', 'ss')  #在内存中完成修改
    fw.write(data)   # 新文件一次性写入原文件内容
os.remove('test.py')  # 删除文件
os.rename('test_swap.py', 'test.py')  # 重命名文件

3.2 方式二

import os
with open('test.py', 'r', encoding='utf8') as fr, \
        open('test_swap.py', 'w', encoding='utf8') as fw:
    for i in fr   #对fr文件里面的内容进行一个循环,逐行修改
    i = i.replace('sb', 'ss')  #在内存中完成修改
    fw.write(i)   # 新文件写入原文件修改后内容
os.remove('test.py')  # 删除文件
os.rename('test_swap.py', 'test.py')  # 重命名文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值