赞
踩
目录
读写文件:read write 打开文件的方式(俩种) :以读的方式打来,以写的方式打开 读和写的时候(俩种):以二进制和文本的格式来读和写 注意:无论如何处理都要关闭文件
传参:
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
默认以文本的方式读取 # known special case of open 开放的已知特殊情况 file 代表一个文件(一个代表文件以及文件路径的字符串) mode 最重要的参数 buffering 缓冲 缓冲区 encoding 编码 errors 错误 newline 换行 closefd 关闭
- """
- 'r' open for reading (default)
- 打开读取(默认)
- 'w' open for writing, truncating the file first
- 打开进行写入,先截断文件(原文件内容会被删除,然后在加入新的内容)
- 'x' create a new file and open it for writing
- 创建一个新文件,打开它进行写入
- 'a' open for writing, appending to the end of the file if it exists
- 打开进行写入,如果文件存在,则附加到文件的末尾
- 'b' binary mode 二进制模式
- 't' text mode (default) 文本模式(默认)
- '+' open a disk file for updating (reading and writing)
- 打开要更新的磁盘文件(读和写)
- 'U' universal newline mode (deprecated)
- 通用换行模式(已不推荐)
- """
# 以默认的方式进行读取
- file_obj = open("python.txt",encoding="utf-8")
- str_data = file_obj.read()
- file_obj.close()
- print(str_data)
# 以with的方式进行读取, with 这种方式不用关闭,默认就是直接关闭的
- with open("python2.txt", encoding='utf-8') as file_obj:
- print(file_obj.read())
# 以二进制的方式进行读取
- file_obj = open("python.txt", "rb")
- bytes_data = file_obj.read()
- file_obj.close()
- print(bytes_data)
# 以二进制的方式去写,并创建一个新的文件python2.txt
- file_obj2 = open("python2.txt", "xb")
- bytes_data2 = file_obj2.write(bytes_data)
- file_obj2.close()
- print(bytes_data2)
# 方法二
-
- file_obj2 = open("python2.txt", "wb")
- bytes_data2 = file_obj2.write(bytes_data)
- file_obj2.close()
# # 用with的方法以二进制的方式去写,并创建一个新的文件python3.txt
- with open("python.txt", "rb") as file_obj3:
- bytes_data3 = file_obj3.read()
-
- with open("python3.txt", "wb") as file_obj4:
- bytes_data4 = file_obj4.write(bytes_data3)
- file_obj3 = open("python.txt", "w")
- try:
- bytes_data3 = file_obj3.write("hello word")
- # str_data3 = file_obj3.read()
- except Exception:
- pass
- finally:
- file_obj3.close()
# 复制smk.png图片
- file2_obj = open("smk.png", "rb")
- bytes2_obj = file2_obj.read()
- file2_obj.close()
-
- file3_obj = open("smk2.png", "wb")
- bytes3_obj = file3_obj.write(bytes2_obj)
- file3_obj.close()
# 用with的方式复制smk.png文件为smk3.png
- with open("smk.png", "rb") as file2_obj:
- bytes_data = file2_obj.read()
-
-
- with open("smk3.png", "wb") as file3_obj:
- print(file3_obj.write(bytes_data))
read 读取 # 注:read(所要读取的字符个数) 换行算一个字符 当()内不填参数时,默认为全部读取 若你在没有关闭文件前再次进行读取,那么将会在之前读取停止的位置开始读取,以此类推直到文件末尾
- file_obj = open("python.txt", "r", encoding="utf-8")
- str_data = file_obj.read() # read(self, n: int = -1) -> AnyStr
- file_obj.close()
- print(str_data)
readline 读取一行 注:readline(a) 读取一行, 这一行的前a个字符,不填参数时,默认为读取第一行
- file_obj = open("python.txt", "r", encoding="utf-8")
- str_data = file_obj.readline() # readline(self, limit: int = -1) -> AnyStr:
- file_obj.close()
- print(str_data)
readlines(a) 读取多行 默认会读取全部内容,并且会以一行(包括该行换行符在内)为一个元素,合成一个列表list_data。 注: 当a小于第一行所含字符数时,readlines会返回第一行所有字符(包括该行换行符在内), 也就是列表list_data的第一个元素 当a正好等于第一行所含字符数,并且恰好读取到换行符时,readlines会读取第一行包括换行符所连接的下一行, 也就是列表list_data的第一第二个元素 当a小于第二行所含字符数,readlines会返回前俩行所有字符(包括该行换行符在内),也就是列表list_data 的前俩个个元素以此类推 '\n'('换行符')代表一个字符,当读取的内容在不同行时,其中会有换行符。
- file_obj = open("python.txt", "r", encoding="utf-8")
- # str_data = file_obj.readlines() # readlines(self, hint: int = -1) -> List[AnyStr]:
- file_obj.close()
- print(str_data)
- file_obj = open("python.txt", "a", encoding="utf-8")
- list_data = ['1', '22', '333', '4444', '55555']
- str_data = file_obj.write('\n' + "\n".join(list_data))
- file_obj.close()
- print(str_data)
- file_obj = open("python.txt", "a", encoding="utf-8")
- list_data = ['\n1\n', '22\n', '333\n', '4444\n', '55555\n']
- str_data = file_obj.writelines(list_data)
- # writelines(self, lines: List[AnyStr](字符串列表)) -> None:
-
- file_obj.close()
- print(str_data)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。