with语句相比较以往的读写文件,能自动帮我们调用close()方法,避免浪费系统的资源。
一、读写文本文件
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("中国!")
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
中国!
<class 'str'>
===============================
123
i love you
中国!<class 'str'>
===============================
['123\n', 'i love you\n', '中国!']
<class 'list'>
二、读写二进制文件
如视频、音频、图片等需要一位一位的去读写。
1、读取信息:
with open("1.jpg",'rb')as f:
t=f.read(3)
print(t,type(t))
结果如下:
b'\xff\xd8\xff' <class 'bytes'>
2、写入信息:
具体示例参看3中例子
with open ('2.jpg','wb')as f:
f.write(t)
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)