文件操作

本文深入讲解了Python中文件操作的基本方法,包括不同模式下文件的读写操作,如'r'、'w'、'a'等,以及如何使用with语句自动管理文件句柄。通过实例演示了如何替换文件中的特定内容,并介绍了文件句柄的各种操作,如seek()和tell()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/env python
# -*- encoding:utf-8 -*-
#创建文件句柄
#方式1,必须做关闭文件的操作
f1=open('a.txt',encoding='utf-8',mode='r')#r模式要求文件已经存在
print(f1.read())
f1.close()
#方式2,自动关闭文件句柄
with open('a.txt',encoding='utf-8') as f2:
content=f2.read()
print(content)
#同时建两个文件句柄:
with open('a.txt', encoding='utf-8') as f1,\
open('c', encoding='utf-8', mode='w')as f2:
print(f1.read())
f2.write('777')
#文件句柄需要元素:
1. 文件路径(绝对路径或者相对路径),若是路径中包含歧义的字符,比如n,需要在路径前加r,
f1=open(r'a.txt',encoding='utf-8')
2.字符编码
windows默认的编码是‘gbk’,如果是对系统创建的文件编辑的话,需要encoding='gbk'如果是pycharm创建的文件,格式默认为‘utf-8’
3. 文件句柄模式 mode,默认为‘r’,只读,也可以指定


#模式,r:只读模式,不输入模式的时候,默认为r
#可做的操作read(),readline(),readlines()
f1=open('a.txt',encoding='utf-8',mode='r')#r模式要求文件已经存在
print(f1.read())#读取全文
print(f1.read(5))#按照字符读取
print(f1.readline())#按行读取
print(f1.read())#从当前光标开始,读取全文末尾
f1.seek(0,2)#光标放到末尾
print(f1.readlines())#从光标开始到文章末尾,将每一行作为列表的一个元素并返回这个列表
print(f1.readable())#该文件句柄是否可读
f1.close()

#for循环读取数据,不占用内存空间
f1=open('a.txt',encoding='utf-8',mode='r')
for line in f1:
print(line)
f1.close()

#rb模式,按照字节读取
f1=open('a.txt',mode='rb')
print(f1.read())#按照字节读取
f1.close()

# #r+ 模式:读写模式,只能先读后写,不然会出问题
f1=open('a.txt','r+',encoding='utf-8')
print(f1.read())
f1.write('测试哦')###如果先写后读,字符是按照字节单位去覆盖。utf-8中,三个字节是一个中文字符,中文跟英文混合的时候容易报错
# print(f1.read())
f1.close()

#r+模式,先写后读模拟
f1=open('a.txt','r+',encoding='utf-8')
f1.seek(0,2)#末尾
f1.write('测试哦')
f1.seek(0) #首位,光标 按照字节去运转 seek
print(f1.read())
f1.close()

#模式w:只写
#可做的操作write() 1.会将文件中内容清空2. 再写入新内容
f1=open('a.txt',encoding='utf-8',mode='w')#w模式文件不存在则创建,不可读,只能写
print(f1.tell())
f1.write('努力奋斗,才会幸福123')
print(f1.tell())
f1.write('你相信吗')
print(f1.tell())
f1.close()

#wb:写二进制文件
# with open('a.txt','wb') as f1:
# f1.write(b'sdfhdlgal')


#a模式句柄,是将光标放到末尾,开始执行写操作
f1=open('a.txt',encoding='utf-8',mode='w')#w模式文件不存在则创建,不可读,只能写
print(f1.tell())
f1.write('努力奋斗,才会幸福123')
print(f1.tell())
f1.write('你相信吗')
print(f1.tell())
f1.close()
#ab 以字节的形式追加
#a+ 追加跟读操作

#模拟一个文本编辑器修改文件的真实操作
#1,打开原文件,产生文件句柄。
#2,创建新文件,产生文件句柄。
#3,读取原文件,进行修改,写入新文件。
#4,将原文件删除。(文件句柄需要先关闭才能删除,所以这里的文件句柄用with open方式打开更好)
#5,新文件重命名原文件。
import os
with open('a.txt',encoding='utf-8')as f1,\
open('d',encoding='utf-8',mode='w')as f2:
for line in f1:
content=line.replace('是','is')
f2.write(content)
os.remove('a.txt')
os.renames('d','a')



转载于:https://www.cnblogs.com/lixiaoxuan/articles/8867057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值