绝对路径:从根目录一直找到文件。
相对路径:从当前文件夹找到文件。
在文件操作中,凡是mode = 带b的,可以不用写encoding
f1 = open():默认需要手动关系文件句柄
f1.close
f1 = open('护士学生空姐班主任.txt',encoding='utf-8',mode='r') count = f1.read() #用read打开很容易让内存瞬间崩溃,小容量的文件可以用read print(count) f1.close() # 必须手动关闭内存空间。
在python中打不开文件的错误原因。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
编码错误:文件存储时编码方式与文件打开时的编码方式不一致。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf
in position 0: invalid start byte
打不开文件可以用两种方法。
第一种: 加r
f1 = open(r'D:1张11.txt',encoding='gbk',mode='r') print(f1.read()) f1.close()
第二种:加
f1 = open('d:\1张11.txt',encoding='gbk',mode='r') print(f1.read())#用read打开很容易让内存瞬间崩溃,小容量的文件可以用read
f1.close()
文件操作有哪些?
r 读模式
read
f1 = open('张11',encoding='utf-8')#默认只读,可以不用谢mode = ‘r’ print(f1.read())# f1.close() print(f1)
read()
f1 = open('张11',encoding='utf-8') print(f1.read(2))#从1开始,找到最后。 f1.close()
readline()
f1 = open('张11',encoding='utf-8') print(f1.readline()) print(f1.readline())#按行读取,每读取一行,就复制一行。 print(f1.readline()) f1.close()
readlines()
f1 = open('张11',encoding='utf-8') print(f1.readlines())#将每一行的到最后,添加一个str的换行符,将这几行内容,以列表的形式,返回出来。 f1.close()
for循环去查
f1 = open('张11',encoding='utf-8') for i in f1:#循环去查 print(i) f1.close()
rb模式:
非文字的文件的读取写入。
f1 = open('11.jpg', mode='rb') #在别的路径打开一个文件,rb模式,默认是bytes类型 count = f1.read() # 把f1都出来的内容赋值给count print(count) f1.close() #关闭文件 f2 = open('235.jpg',mode='wb')#在新建一个235的空白文件 f2.write(count)#将count内容,写入f2.
r+模式 r(直读)(+)在添加个写的功能
先读后写。
f1 = open('张11',encoding='utf-8',mode='r+') print(f1.read()) f1.write('666')#在末行添加一行666 print(f1) f1.close()
r+b模式: 读写,先读后写。
f1 = open('张11',mode='r+b') print(f1.read()) f1.write('6667555'.encode('utf-8')) f1.close()
w wb模式:
w:没有文件,创建文件写内容。
w:如果有文件,清空原文件,写入新内容。
f1 = open('张三',encoding='utf-8',mode='w') print(f1.write('777'))
f1.close
wb:覆盖添加
f1 = open('张三',mode='wb') f1.write('s'.encode('utf-8')) #覆盖添加 f1.close()
w+:先写后读
1 = open('log1d',encoding='utf-8',mode='w+') f1.write('fff') f1.seek(0)#将光标移动到0的位置 print(f1.read()) f1.close()
w+b
a ab
a:没有文件,创建文件写内容
f1 = open('asd',encoding='utf-8',mode='a') f1.write('qqq') f1.close()
a+:有文件,直接在源文件后面追加新内容
没有文件,创建文件写内容,默认追加到最后。
f1 = open('5',encoding='utf-8',mode='a+') f1.write('5222') f1.close()
ab : 默认添加到最后
f1 = open('logr',mode='ab') f1.write('中国'.encode('utf-8')) # print(count) f1.close()
readlable()判断文件是否可读
writable()判断文件是否可写
f1 = open('log1',encoding='utf-8',mode='r') print(f1.readable()) print(f1.writable())
seek : 按照字节去调整光标
seek(0,2)
f1 = open('张三',encoding='utf-8') print(f1.seek(3)) print(f1.read())
tell
f1 = open('张三',encoding='utf-8') print(f1.tell()) print(f1.read()) print(f1.tell())
truncate 对原文件进行截取内容,以字节形式,只能在a模式下使用。
f1 = open('张三',encoding='gbk',mode='a') f1.truncate(2) print(f1)