python文件操作的一般步骤_Python基础之(文件操作)

一、文件操作基本步骤:

一般需要经历如下步骤:

打开文件

操作文件

示例:

#1. 打开文件,得到文件句柄并赋值给一个变量

f=open('1.txt','r',encoding='utf-8') #默认打开模式就为r

#2. 通过句柄对文件进行操作

data=f.read()

#3. 关闭文件

f.close()

二、文件的打开模式

文件句柄 = open(‘文件路径’,‘模式’,encoding=“编码”)

打开文件的模式有:

r,只读模式(默认)。

w,只写模式。(不可读;不存在则创建;存在则删除内容重新写入;)

a,追加模式。(可读; 不存在则创建;存在则只追加内容;)

‘+’模式(就是增加了一个功能)

r+, (读写) 先读后写即追加;先写后读,重头开始写,然后从光标开始读

w+,(写读) 先写后读,写入后读出光标后面

a+, (写读) 先追加,然后读出光标后面内容

ps:常用的也就是r+

"b"表示处理二进制文件(如:发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

rb

wb

ab

三、常用操作方法:

f = open("1.txt","r+",encoding="utf-8")

f.read() #读

f.write(data) #写

f.tell() #文件光标位置

f.seek(10) #控制光标移动

f.seek(-10,2) #2为倒着读10个字符

f.flush() #刷新

f.truncate(10) #截取0-10位置 写操作

f.readline() #读出一行

f.readlines() #按行全部读出

f.close() #关闭文件

四、With

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open('1.txt','r') as f:

for i in f:

print(i)

或者打开多个文件:

with open('1.txt') as f,open('2.txt','w') as f1:

for i in f:

f1.write(i)

ps:

打开一个文件包含两部分资源:操作系统级打开的文件+应用程序的变量。在操作完毕一个文件时,必须把与该文件的这两部分资源一个不落地回收,回收方法为:

1、f.close() 回收操作系统级打开的文件

2、del f 回收应用程序级的变量

其中del f一定要发生在f.close()之后,否则就会导致操作系统打开的文件还没有关闭,白白占用资源,而python自动的垃圾回收机制决定了我们无需考虑del f,这就要求我们,在操作完毕文件后,一定要记住f.close(),但是为了避免遗忘,还是推荐使用With

五、文件的修改:

文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式:

5.1、全部加载到内存,在内存里修改好后覆盖到硬盘

import os # 调用系统模块

with open('1.txt') as f,open('1.txt.bak','w') as f1:

data=f.read() #全部读入内存,如果文件很大,会很卡

data=data.replace('789','xxx') #在内存中完成修改

f1.write(data) #一次性写入新文件

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

os.rename('1.txt.bak','1.txt') #将新建的文件重命名为原文件

5.2、将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件

import os

with open('1.txt') as f,open('1.txt.bak','w') as f1:

for i in f:

a = "xxx"

if a in i:

i = i.replace("xxx","sss")

f1.write(i)

os.remove('1.txt')

os.rename('1.txt.bak','1.txt')

ps:推荐使用后者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值