with语句相比以往的读写文件,能自动帮我们调用close()方法,避免浪费系统的资源。
1. 读写文本文件
1.1 > 向文件中写内容:
语法如下:
with open ("1.txt","w",encoding="UTF-8") as f:
f.write("......")
#向1.txt文件中写入文本
with open ("1.txt","w",encoding="UTF-8") as f:
f.write("123\n")
f.write("i love you\n")
f.write("中国!")
1.2 > 读取文件中的内容:
语法如下:默认为读
with open ("1.txt",encoding="UTF-8") as f:
f.read()
f.readline()
f.readlines()
read():读取文件中的全部内容,读取的类型为字符串;
read(n):一次读取n 个字符;
readline():按行读取文件中的内容,读取的类型为字符串,而且readline()默认换行;
readlines():读取文件中的全部内容,读取的类型为列表 ,其中,每行为列表中的一个元素;
#read()方式读取文件
with open("1.txt",encoding='utf-8')as f:
txt=f.read()
print(txt)
print(type(txt))
print('===============================')
#readline()方式读取文件
with open("1.txt",encoding='utf-8')as f:
while 1:
#readline()默认换行
txt=f.readline()
if txt:
print(txt,end='')
else:
break
print(type(txt))
print('===============================')
#readlines()方式读取文件
with open("1.txt", encoding='utf-8')as f:
# readlines()读取的是个列表,每行为一个列表元素
txt = f.readlines()
print(txt)
print(type(txt))
结果如下:
123
i love you
中国!
===============================
123
i love you
中国!
===============================
['123\n', 'i love you\n', '中国!']
2. 读写二进制文件
像视频,音频,图片等需要一位一位的去读写。
2.1 > 读取信息:
with open("1.jpg",'rb')as f:
t=f.read(3)
print(t,type(t))
结果如下:
b'\xff\xd8\xff'
2.2 > 写入信息:
with open ('2.jpg','wb')as f:
f.write(t)
2.3 先读在写——>复制:
如下示例就是把图片1.jpg复制了一份,2.jpg。
#先读在写——————复制
with open("1.jpg",'rb')as f:
t=f.read()
print(type(t))
with open ('2.jpg','wb')as f:
f.write(t)