文件操作

句柄

句柄 = open(“文件”,mode = "模式",encoding = "编码集")

注意点:读完的文件句柄一定要关闭

with  open("文件",mode = “模式”,encoding = “编码集”)  as "句柄":

f = open("t1",mode="r",encoding="utf-08")
f.close #关闭文件
文件名为“t1”,相对位置,模式为“r”只读模式,编码集“utf-8”.
with open("C:\Users\Administrator\Desktop\t1",mode="w",encoding="utf-8") as f:
文件名为“C:\Users\Administrator\Desktop\t1”,绝对位置,模式为覆盖写(mode=)可省略,utf-8 编码

路径

1.绝对路径:从磁盘根目录开始一直到文件名

2.相对路径:相对于当前这个程序所在的文件而言:如果在同一个文件中,则相对路劲就是这个文件名;如果在上一层文件夹则要使用../

推荐使用相对路劲,因为移动程序的整个文件到其他电脑的时候,使用绝对路径还需要额外的拷贝外部文件

模式

只读'r'和“rb”

rb读出来的数据是bytes类型,在rb模式下,不能encoding字符集

read

只读模式下只能读取文件,不可写入内容和更改。"rb"为读取字节,根据encoding判定长短

read为一次读取文本中的全部内容,当文件过大时容易造成内存溢出

f = open("t1",mode="r",encoding="utf-8")     #t1 中内容为123132
print(f.read())         #123132

 read(a)指定读取到什么位置,我们指定先读取前三个内容,然后在使用read()进行读取会继续向后读取,而不会从头开始读取

readline()

readline()读取每次只读取一行,注意点:readline()读取出来的数据在后面都有一个\n,可用str.strip()去除。

readine()读取一行后,从下一行继续读取

f = open(r"t1",mode="r",encoding="utf-8")
print(f.readline())      
print(f.readline())
print(f.readline())
# 123
# 
# 456
# 
# 789

 

 

readlines

readlines()读取的是每一行,存放到一个列表当中

f = open(r"t1",mode="r",encoding="utf-8")
print(f.readlines())            #['123\n', '456\n', '789\n']

 

覆盖写‘w’,'wb'

# # 写完文件刷新.flush() # #

只写模式会创建不存在的文件,文件存在时会清空内容

wb模式下,不可以指定打开文件的编辑,但是写文件的时候必须将字符串转换成utf-8的bytes数据

追加a,ab

只要是a或者ab,a+都是在文件的末尾写入,不论光标在任何位置.

读写模式r+,r+b

对于读写模式,必须是先读后写,因为光标默认在开头位置,当读完了以后再进行写入.使用频率最高的模式就是r+

r+模式是先读后写

***在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入或者操作文件的时候都是在结尾进行的操作.***

写读模式w+,w+b

先将所有的内容清空,然后写入.最后读取.但是读取的内容是空的,不常用

追加模式a+,a+b

a+模式下,不论是先读还是后读,都是读不到数据的

其他操作

seek(a)

光标移动到a 的位置,根据字节(byte)判断,所有如果是utf-8的中文部分要是3的倍数通常我们使用seek都是移动到开头或者结尾

seek(0,0)光标移动到开头

seek(0,1)光标移动到当前位置

seek(0,2)光标移动到末尾

tell()

使用tell()获取当前光标在什么位置

truncate() 截断文件

先挪动光标到你想要截断的位置. 然后再进行截断。
关于truncate(n), 如果给出了n. 则从开头进行截断, 如果不给n, 则从当前位置截断. 后⾯面
的内容将会被删除

import os

os.rename(a,b)重命名,将a文件命名为b。a,b均为字符串

os.remove(a)删除,将文件a删除

 

posted on 2019-01-08 21:37  六月_海动  阅读(77)  评论(0)    收藏  举报