IO 文件读取
'''
打开文件(读取)练习。#尤其要注意编码
'''
file = open('reame.txt','r',encoding = 'utf-8')
a = file.read()
print(a)
file.close()
'''
r+是r模式的拓展,既包括读也包括写,用r+模式打开文件。
可以在读取以后在用write进行追加书写内容。
如果只是用r模式读取,再使用write会出错。
r+模式如果读取不存在的文件会出错,也不会直接创建文件。
'''
file2 = open('reame.txt','r+',encoding = 'utf-8')
a2 = file2.read()
file2.write('read+')
print(a2)
file.close()
#IO,w练习
file = open('reame.txt','w',encoding = 'utf-8')
#定义一个变量为打开路径里名字为reame.txt文件,w模式,编码模式为utf-8
file.write('233')
#写入字符串233
file.close()
print('='*25)
IO,w+练习
'''
w模式下是无法使用read方法的,w+模式可以,与r+情况类似。
'''
filew = open('reame.txt','w+',encoding = 'utf-8')
#定义一个变量为打开路径里名字为reame.txt文件,w+模式,编码模式为utf-8
filew.write('write+')#写入字符串
filew.seek(0)#指针调整到第0字节开始。
print(filew.read())#读取该文件
filew.close()
print('='*25)
IO,a练习
a模式,即是append,意思是追加。
app = open('reame.txt','a',encoding = 'utf-8')
#定义一个变量为打开路径里名字为reame.txt文件,a模式,编码模式为utf-8
app.write('\n666a')
#写入换行符字符串666
app.close()
print('='*25)
IO,a+练习
a+模式,即是append,意思是追加。
'''
与W+模式不同的是,如果文件内容本存在,输入指针会跳到内容末尾。
最重要的是append模式不会出现文件覆盖的情况
'''
app = open('reame.txt','a+',encoding = 'utf-8')
#定义一个变量为打开路径里名字为reame.txt文件,a+模式,编码模式为utf-8
app.write('\nappend+')
#写入换行符字符串append+
app.seek(0)#指针调整到第0字节开始。
a = app.read()
print(a)
app.close()
print('='*25)
IO,进阶的一些运用
'''
文件内容的拷贝
'''
#先用r模式读取一个文件的内容
file = open('reame.txt','r',encoding = 'utf-8')
content = file.read()#读取文件内容到内存并用变量指向它
print(content)#打印内存中的内容
print('='*25)
file2 = open('reame2.txt','w+',encoding = 'utf-8')#用w+模式创建新文件
content2 = file2.write(content)#写入之前的内容
file2.seek(0)#调整指针位置
print('='*25)
print(file2.read())#打印新文本的内容
file.close()
'''
rb和wb模式的一些应用,复制图片
因为非文本文件,通常是以二进制进行保存的,通常的模式并不合适。
'''
#先用rb模式读取一个图片的内容
pain = open('HKfb5WV.png','rb')#注意这里不需要写入解码方式,保留二进制,否则出错
temp = pain.read()#读取图片,并赋值到一个变量上
painw = open('HKfb5WV2.png','wb')#用wb模式读取该图片,由于该文件本没有,所以会创建
temp2 = painw.write(temp)#写入图片内容
pain.close()
print('='*25)
'''
用rb模式读取文字的二进制编码
'''
filerb = open('文字.txt','rb')#用rb模式读取utf-8编码的汉字,得到其文字的二进制编码
temprb = filerb.read()#赋值到一个变量上
print (temprb)#将其打印出来
filerb.close()
# '''
# 打印出来的效果
# b'\xe9\x98\xbf\xe9\x98\xae\xe7\x9a\x84\xe7\x8c\xaa\xe7\xaa\x81\xe7\x8c\x9b\xe8\x
# bf\x9b\xef\xbc\x88\xe4\xb8\x80\xe5\xbe\x80\xe6\x97\xa0\xe5\x89\x8d\xef\xbc\x89'
# '''
filewb = open('文字2.txt','wb')#用wb模式
tempde = temprb.decode('utf-8')#将以上那段二进制代码解码成utf-8
print (tempde)#将其解码结果打印出来
filewb.close()