Python——文件处理

一、文件的处理流程
二、基本操作
1.文件操作基本流程
2.文件编码
3.文件的打开模式
4.文件内置函数Flush
5.文件内光标移动

一、文件处理流程

1.打开文件,得到文件句柄并赋值给变量
2.通过句柄对文件进行操作
3.关闭文件
实例:

f = open('文档',encoding='utf-8')  # open() 这个程序用‘utf-8’编码读取‘文档’#f也就是文件句柄.系统默认编码GBK(因此文件是Utf-8编码存储的,打开需以utf-8编码)
data = f.read() #读此文档中的内容
print(data)   #打印出文档内容
f.close()	#如果没有这步骤,文档处于一直打开状态,占用系统资源

二、 文件基本操作

1.只读模式操作: “ r 模式”

	f  = open('文档',‘r’,encoding=‘utf-8)    #encoding=‘utf-8’ 以utf8 方式打开 如果使用只读模式来操作,里面这个‘r’,如果不写的话,默认就是只读模式
	data = f.read()
	print (data)
	f.close()

1.1 只读模式下的其他使用方法
readable()

f = open('文档',‘r’,encoding=‘utf-8) 
	data = f.readable()  #判断此文件是否可读,可读打印ture.如果在句柄处(f),将 (‘r’)改成('w')那么将打印false,表示文档不可读。
	print(data)
	f.close()

readline()

	f = open('文档',‘r’,encoding=‘utf-8)  
	print = ('第一行',f.readline())  #每次只读取,“文档”中的一行
	print = ('第二行',f.readline()) #读取到第二行发现:每读取完一行之后会打印空行(在print语句后面添加end="" 来解决)
	print = ('第三行',f.readline()) 
	f.close()

readlines()

f = open('文档','r',encoding='gbk')
	data = f.readlines()		 #readlines 是将文档中的所有内容读取出来,放在一个列表里面
	print(data)
	f.close()

**2.只写模式操作: w 模式

f = open('文档','w',encoding='gbk')
	data = f.write('junhao') #只写模式是创建新文档,覆盖原文档,f.write()里只能写一个参数,且必须是字符串
	print(data)
	f.close()

2.1只读模式下的其他使用方法
writeable ():如上面readable()的用法一致,是用bool()来判断,当前文档是否可写,可读
writelines() :

3.文件追加操作: **“ a 模式” **

f = open('文档','a',encoding='gbk')	# a 模式本质上是写模式,无论从哪里写都是写到文档的最后一行
	data = f.write('shdfu\n')  	# 在文当的末尾追加写入,默认是不会换行的需要手动加入换行(‘\n’)
	print(data)
	f.close()

以上三个模式为常用的文件操作
4.可读可写模式操作
* “ r+ ” **

with open('文档','r+',encoding='utf-8') as f: #关键字with  作用:在不需要访问文件后将其关闭  # 文件句柄 使用**as** 来赋值
    data = f.read()
    print(data)
    f.write('junhao')  # 这里面写入的位置是光标所在文档的具体位置开始写入

4.1文件内容的修改操作

src_f = open('文档','r',encoding='gbk')
data = src_f.readlines()
src_f.close()       # 首先读取一个文档的内容,然后写入在另一个文档中,

dst_f = open('文档2','w',encoding='utf-8')
dst_f.writelines(data[0])     #因为上面读取代码中,readlines()命令读出的内容放在一个列表,所以我们可以用索引的方式,更改
dst_f.close()

5.b表示以字节的方式来操作
文件处理方式默认是文本方式来处理,但文件不仅仅包含文本,有的包含视频,图片等。
5.1 rb或r+b操作模式***

with open('文档','rb') as f: # b 的方式不可指定编码
    data = f.read()
    print = (data)    #在windows 操作系统中,打印的每行尾部是\r\n,读出来的是二进制形式显示
    print(data.decode('gbk'))  # 要想显示出字符,需要对其进行解码操作,把二进制转字符串,用 decode() 来解码

5.2wb或w+b操作模式***

with open('a.txt','wb') as f :      
    f.write(bytes('军阿红\n',encoding = 'utf-8'))   # 将字符串转换成二进制 写入,需要先进行编码 将字符串转二进制用**bytes()**encoding = 'utf-8' 以utf-8 方式编码
    f.write('1111'.encode('utf-8')) # 也可直接encode 编码方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值