文件打开
f = open(文件地址, mode = 打开方式, encoding= 编码方式)
f是句柄,连接程序和文件的桥梁
文件地址有绝对地址和相对地址:
1.绝对地址,该文件在电脑中存储的位置,例如”C:\Users\DELL\Desktop\test(2).doc“,记得要在地址前加r,表示里面的字符不用转义,防止因为转义字符文件打不开
写好后如下所示:
f = open(r"C:\Users\DELL\Desktop\test(2).doc", mode = "a", encoding="utf-8")
2.相对地址,直接写,如果与当前代码不在用一个文件下,加“…/",相对位置多一层就再加一个“…/",例如,如下情况
代码文件和文本文件不在一个目录下。
打开方式:
f = open("../b/tmp.txt", mode = "a", encoding="utf-8")
当然,如果在一个目录下,就可以直接进行操作,例如直接操作
f = open("tmp.txt", mode = "a", encoding="utf-8")
对于mode
有多种操作方式,例如r,w,a,rb,wb等等
1."r"只读,不能写
f = open("tmp.txt", mode = "a", encoding="utf-8")
#全文都读下来,但是对内存占用比较大
f.read()
#只读一行
f.readline()
#如果要遍历读取
for line in f:
#strip()去掉每次读取后的换行
print(line.strip())
2.“w",读入文件,如果文件不存在,在文件夹里创造一个新的目标文件。如果存在,就把原文件删除空后,再往里面写
f = open("tmp.txt", mode = "b", encoding="utf-8")
for i in range(10,20,1):
#加入\n每次换
f.write("I LOVE YOU " + str(i) + " TIMES\n")
3.“a",在文件后面追加。如果文件不存在,在文件夹里创造一个新的目标文件。如果存在,接着往里面写
f = open("tmp.txt", mode = "a", encoding="utf-8")
for i in range(2,10,1):
f.write("I LOVE YOU " + str(i) + " TIMES\n")
4.“rb","wb"二进制文本的读写,于上面大致相同,但是没有encoding
f = open("tmp.jpg", mode = "rb")
encoding是编码模式,详情请看:utf-8介绍
当然,当对文件操作结束后,要改变文件。
f.close()
如果不关闭文件,无法对文件进行其他后续的操作
此时引入一种写法,可以省略最后的关闭操作,自动关闭文件:
with open("tmp.txt", mode = "a", encoding="utf-8") as f:
#这里写对文件的各种操作,之后不用再写f.close()