对文件的操作:
1.文件操作
a.文件路径
b.编码方式:
c.操作方式:只读,只写,追加,写读 r rb(非文字类的文件,打开图片,文件编码,上传下载,储存)
常用是:r+
只读:r rb
f = open('aaa.txt','r',encoding='utf-8')
f.read()
f.close()
f = open('aaa.txt','rb')
f.read().decode('utf-8')
f.close()
只写:文件存在-内容清除然后添加,文件不存在-创建新文件,添加内容
w wb
f = open('abcd.txt','w',encoding='utf-8')
f.write('qibingbubing')
f.close()
f = open('abcd.txt','wb')
f.write('qibingbubing'.encode('utf-8'))
f.close()
追加:a ab
f = open('aaa.txt','a',encoding='utf-8')
f.write('sadf')
f.close()
f = open('aaa.txt','a',)
f.write('sadf'.encode('utf-8')
f.close()
4.读写
f = open('aaa.txt','r+',encoding='utf-8')
print(f.read())
f.write('adsf,adfad')
f.close()
先读后写,上面代码不会读出写入内容
写读
f = open('aaa.txt','r+',encoding='utf-8')
f.write('adsf,adfad')
print(f.read())
f.close()
先写后读,,光标从第一位开始写,对原有内容进行覆盖
r+b
f = open('aaa.txt','r+b')
print(f.read())
f.write('adsf,adfad'.encode('utf-8'))
f.close()
w+
f = open('aaa.txt','w+',encoding='utf-8')
f.write('adfsdfa')
f.seek(0) #调节光标
print(f.read())
f.close()
w+b
......
a+
f = open('aaa.txt','a',encoding='utf-8')
f.write('sadf')
f.read() #这里会报错,改为a+模式
f.close()
f = open('aaa.txt','a+',encoding='utf-8')
f.write('sadf')
f.seek(0)
print(f.read()) #这里会报错,改为a+模式
f.close()
# 功能详解
f = open('aaa.txt','r+',encoding='utf-8')
content = f.read(3)
print(content)
f.close()
$read读出来的都是字符
f = open('aaa.txt','r+',encoding='utf-8')
f.seek(3) #按字节定光标位置
f.tell() #监测光标所在位置
print(f.tell())
content = f.read()
print(content)
f.close()
$seek按照字节光标定位
断点续传,先确定光标在哪里
#-------------------------------------------------------------------------------
readline() 一行一行读
readlines() 所有内容按列表式读,一行一元素
truncate() 对原文件截取
#------------------------------------------------------
循环打印文件用for
for line in f :
print(line)
f.close()
一般来说读取文件不会全部读取,要一行一行读或截断
#---------------------------------------------------------
with open() as f_1,open() as f_2 :
对文件进行多操作,可省略close()方法