目录
一、创建文件
- 右键打开菜单
- 点击New,创建File
二、打开文件
def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
- open:打开,以读read或写write的方式打开,
读的方式:文本的方式,二进制的方式。
写的方式:文本的方式,二进制的方式。
写文件的时候有覆盖和追加。
以文本写的时候是字符串,以二进制写的时候是字节。
- file:文件;形式是——>路径 + 文件。
- mode:模式。
- buffering:缓存。
- encoding:编码。
- errors:错误处理方式。
- newline:新行。
- closefd:关闭文件描述符。
-
‘r’:以读的方式打开文件(默认)。 - ‘w’:以写的方式打开文件,先清空再写——>覆盖。
- ‘x’:创建一个新文件,并以写的方式打开。
- ‘a’:以追加的方式去写。
- ‘b’:二进制方式。
- ‘t’:文本方式(默认)。
- ‘+’:以读或写打开一个磁盘文件。
read
-
file_obj = open("file_text1") data = file_obj.read() print(data) file_obj.close()
上面这种写出来是乱码,要添加编码方式(文件的编码方式可以在Python编译器的右下角查看)
file_obj = open("file_text1", encoding="UTF-8")
data = file_obj.read()
print(data)
file_obj.close()
-
file_obj = open("file_text1", encoding="UTF-8") data = file_obj.read() print(data) file_obj.close() file_obj = open("file_text1", "rt", encoding="UTF-8") data = file_obj.read() print(data) file_obj.close()
r和t都是默认方式
-
注意:如果是文本方式r可以省略,如果是二进制方式r不能省略。
readlines
- 按数量去读取,但是返回的是一个列表,且返回的是你读取的字符所在行的整行内容。
file_obj = open("file_text3", "rt", encoding="utf-8")
data1 = file_obj.readlines(12)
print(data1)
file_obj.close()
- 但当变换readlines里面的数字时
readline
- 读取单行
file_obj = open("file_text3", "rt", encoding="utf-8") data1 = file_obj.readline(9) print(data1) file_obj.close()
readale
- 判断可读还是不可读,返回的是true/false。
write
-
file_obj = open("file_text1", "w", encoding="UTF-8") data = file_obj.write("1234556789") print(data) file_obj.close()
会覆盖原来文件里的内容,输出的是你写入字符的个数。如果你打开的文件不存在,他会自己创建一个文件,并写入你输入的内容。
writable
- 判断是否有写的能力,返回的是true/false。
writelines
- 写多行内容
file_obj = open("file_text1", "w", encoding="utf-8") data = file_obj.writelines("\n".join(["hello", "world", "china"])) file_obj.close()
a 追加
-
file_obj = open("file_text1", "a", encoding="UTF-8") data = file_obj.write("1234556789") print(data) file_obj.close()
+ 以读或写打开一个磁盘文件
-
file_obj = open("file_text1", "a+", encoding="UTF-8") data = file_obj.write("1234556789") print(data) file_obj.close()
注意:'+'不能单独出现。
b二进制方式
- 二进制的方法:图片,音频,视频,或其他非文本的文件。
- 二进制读取出来的类型是字节,所以二进制去写时用的也是字节。
- 复制图片
file_obj = open("picture_copy.jpg", "wb") data = file_obj.write(data) file_obj.close()
在你的文件夹查看图片
文件大小是一样的
- read读取字节(括号里输几,就读取几个字节)
file_obj = open("picture.jpg", "rb") data = file_obj.read(3) print(data)
- 注意:二进制不需要加编码方式;
如果不把图片放进你的Python目录里,就要在编码时写路径。
三、关闭文件
-
手动关闭
file_obj.close()
-
with关闭
with open("file_text2", "w", encoding="utf-8") as file_obj: file_obj.write("123")