打开文件---open()
1.要打开文件,首先需要知道文件的路径,如果没有路径,在当前目录查找文件。
2.得到文件 ascii,声明文件的编码格式。、
例如:
f = open("demo.txt", encoding='utf-8')
读取文件---read()
模式 r 为默认模式,可以省略
详解 r 模式:以只读方式打开文件。这是默认模式,可以省略。
例如:
f = open("demo.txt", mode="r",encoding='utf-8') # mode="r"可以省略
print(f.read()) #正常打印
print(f.readlines()) #打印之后以列表的形式展现,如果有换行,还会显示换行符
写入文件---write()
模式 w 为写入模式,可以省略
详解w模式:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
例如:
f = open("demo1.txt", mode="w", encoding='utf-8') #mode="w"不可省略,否则会报错
f.write("hello, work")
运行以上代码之后,我们会发现已经创建了一个名为demo1.txt的文件,里面的内容为:hello,work
接下来我们再次向这个文件写入"谨言你真棒"
f = open("demo1.txt", mode="w", encoding='utf-8') #mode="w"不可省略,否则会报错
f.write("谨言,你真棒")
f.close()
这个时候你会发现, hello,work消失了,已经被"你真棒"覆盖
那这个时候,如果不想被覆盖,我们就要将模式改为 a 模式,也就是add 追加模式
例如:
f = open("demo1.txt", mode='a', encoding="utf-8")
f.write("你真棒")
f.close()
当文件已经存在,但是不允许被写入的时候,要使用x模式,
也就是说x模式: 只写模式【不可读;不存在则创建,存在则报错】
关闭文件---close()
例如:
f = open("demo1.txt", mode="w", encoding='utf-8')
f.write("hello, work")
f.close()
r+模式详解:打开一个文件用于读写。文件指针将会放在文件的开头。
w+模式详解:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a+模式详解:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
+模式详解:打开一个文件进行更新(可读可写)。
b模式详解:二进制模式。
rb模式详解:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
rb+模式详解:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
例如:
f = open("五星红旗.jpg", mode="rb")
print(f.read())
此时是不需要有encoding='utf-8'的,因为图片是二进制组成的,不是文字
wb模式详解:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
wb+模式详解:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+模式详解:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
with用法:最后一行,会自动调用 f.close(),防止自己忘记关闭关闭文件,从而造成bug
例如:
with open("demo.txt", mode='w', encoding="utf-8") as f:
f.read()
# 最后一行,会自动调用 f.close()