python文件处理--文件的读写

import chardet  #chardet模块预测打开文本字符的编码
# f = open(file='C:/Users/jeep-peng zhang/Desktop/23.txt', mode='r',encoding='utf-8') 文本模式读取
f=open('C:/Users/jeep-peng zhang/Desktop/23.txt','rb',)#二进制模式读取
stat = f.read()
# f.close()
print(stat.decode("gb2312"))#decode['其他'-----转成unicode] ,encode[unicode----转成gb2312]
print(chardet.detect(stat))

一、文件的读入知识点:

    1.文件的读模式 open(file="打开文件路径",mode='打开模式',encoding='编码')

    2.‘r’模式为文本读取模式,‘rb’模式为二进制读取模式,主要用于网络传输

    3.chardet模块 可以预测打开文本的编码类型(在‘rb’二进制模式下使用)

    4.循环

f = open('C:/Users/jeep-peng hang/Desktop/23.txt','r',encoding='gbk')
stat = f.read()
f.close()
for line in stat:
    print(stat)#出现的情况是一个一个字符的打印。
#========================================================== 

 f = open('C:/Users/jeep-peng zhang/Desktop/23.txt','r',encoding='gbk')
 for line in f:
 print(line)#出现的情况是行的打印。中间会隔一行。

 二、文件的写入知识点:

1.‘w’模式是创建模式,如果在原来的文件上创建会删除原来的内容(注意!)

# 文件的写入
# f=open('C:/Users/jeep-peng zhang/Desktop/33.txt','w',encoding='utf-8')
f=open('C:/Users/jeep-peng zhang/Desktop/34.txt','wb')
f.write('大家好我是我写的!'.encode('gbk')) #以二进制的模式写入需要编码
f.close()

2.‘a’或‘ab’追加模式 需要使用\n 让文件重启一行重写

f=open('C:/Users/jeep-peng zhang/Desktop/23.txt','ab')
f.write('\n大家好我是我写的的的!'.encode('gbk')) #以二进制的模式写入需要编码
f.close()

 三、混合模式:‘r+’

f=open('C:/Users/jeep-peng zhang/Desktop/23.txt','r+',encoding='gbk')#混合模式
stn = f.read()
print('con',stn)
f.write('\n卧室的') #以二进制的模式写入需要编码
f.close()

3.1.f.read()中读了一次后,光标会移动到最后,再次读的话无法再次读取打印出内容。

3.2 f.flush()将内存里的存储的内容强制刷新到硬盘里面

3.3f.readline() 单行读取内容,一行一行的读取内容,f.tell()方法显示当前的光标位置,f.seek(0)返回到最开始的光标位置。f.seek()和f.tell()都是以字节数来读取,f.read()是按照字符数来读取。

f.tell() #按照字符数读取
170
f.seek(0)#按照字符数读取
0
f.readline()

'年罚没30亿!银行业案件高发态势得到遏制\n'

f.seek(0)
0
f.seek(6)
6
f.read(6)
'30亿!银行'

 

 3.4  f.truncate()从当前位置截断(在'r+')模式下使用,例子:

'年罚没30亿!银行业案件高发态势得到遏制\n'
f.truncate(4)从最开始往后4个字符开始截断:(以字节数来读取)
f.seek(0)
0
f.seek(6)
6
f.truncate()
6
f.seek(0)
0
f.read()
'年罚没'
f.seek(2)
2

f.truncate(4)
4

最后显示:年罚

 

转载于:https://www.cnblogs.com/jeepzp/p/8227825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值