一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情。
Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用file对象做大部分的文件操作。
1、open
python内置open(file_name,access_mode,encode)方法是打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。参数file_name表示一个包含了你要访问的文件名称的字符串值。目标文件的路径+名字,最好使用r”路径“这种原始字符串写法,防止有转义字符影响实际路径。参数access_mode表示决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。参数code表示编码的方式,常用utf-8,gbk等,
备注:
r:表示以只读方式打开文件,文件的指针将会放在文件的开头。如果文件不存在则会报错
rb:表示以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于非文本文件如图片等。注意这种方式不能使用encoding,不然会报错。
r+:表示打开一个文件用于读写。文件指针将会放在文件的开头。直接写入会覆盖文件开头的内容
w:表示打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+:表示打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
wb:表示以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
b+:表示打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a:表示打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:表示以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:表示打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
只读打开文件r:
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","r")
print(f.read())
此时打印结果为文件的内容,注意文件存入的格式必须是utf-8,此时读取的时候不会报错,如果不是utf-8的格式,读取的时候会报错。只用读的方式打开文件。
读写打开文件r+:
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","r+")
f.write("hello , 你好")
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","r")
print(f.read())
此时打印结果为”hello , 你好“,第一步打开文件测试打开文件试试.txt文件,文件内写入”hello , 你好“,再次打开文件,读取文件。
二进制读方式打开文件rb:
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","rb")
print(f.read())
此时打印结果为“b'hello \xef\xbc\x8c \xe4\xbd\xa0\xe5\xa5\xbd',二进制格式打开文件,读取文件的内容
以写入打开一个文件:
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","w")
f.write("测试")
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","r+")
print(f.read())
此时打印结果为“测试”,表示打开文件,写入内容,然后再次打开文件,读取文件
追加方式打开文件a:
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","a")
f.write("---好好学习,天天向上")
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","r+")
print(f.read())
此时打印结果为“测试---好好学习,天天向上”,表示在之前文件内容后方增加要写入的字符串。
2、close
python中内置文件关闭方法,file.close()方法是刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。一般open方法和close方法配合这用的。
eg:
f = open(r"/Users/admin/Desktop/测试打开文件试试.txt","r+")
f.close()
文件打开后不用后要记得关闭,
3、with open()as
with open() as 文件名,是open()方法的一种升级用法,控制块结束的时候文件会自动关闭,不需要显示的地调用close()关闭文件。这种方法更方便使用,推荐大家使用这种方法。
eg:
with open(r"/Users/admin/Desktop/测试打开文件试试.txt","r+") as f:
print(f.read())
此时打印结果为“测试好好学习,天天向上-----好好学习,天天向上”,不需要去调用close关闭文件方法,内部会自动关闭文件。