文件操作
打开操作
f = open("文件名", "访问方式")
# open(file,mode = 'r', buffering = -1, encoding = None, errors = None, newline = None, closefd = True, opener = None)
# 第二个参数不写的情况下,默认以只读的方式打开文件
- 使用f.write(),写文件操作时,括号内只能放字符串。
访问方式
| |
---|
r | 以只读方式打开文件,文件的指针将会放在文件的开头,如果文件不存在,报错,抛出异常 |
w | 以只写方式打开文件,如果文件已存在会覆盖原文件,如果文件不存在,则创建新文件 |
a | 以追加方式打开文件,如果文件已存在,文件指针将会放在文件的结尾,如果文件不存在,创建新文件写入 |
r+ | 以读写方式打开文件,文件的指针将会放在文件的开头,如果文件不存在,报错,抛出异常 |
w+ | 以读写方式打开文件,如果文件已存在会覆盖原文件,如果文件不存在,创建新文件 |
a+ | 以读写方式打开文件,如果文件已存在,文件的指针将会放在文件的结尾,如果文件不存在,创建新文件写入 |
wb | 以二进制形式写入数据,如果该文件已存在则打开文件,文件的指针将会放在文件的开头,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等 |
rb | 以二进制形式读取数据,文件指针将会放在文件的开头。一般用于非文本文件如图片等 |
ab | 以二进制形式追加数据,如果该文件已存在,文件指针将会放在文件的结尾。即新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
wb+ | 以二进制读写形式打开文件,如果该文件已存在则打开文件,文件的指针将会放在文件的开头,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等 |
rb+ | 以二进制读写形式打开文件,文件指针将会放在文件的开头。一般用于非文本文件如图片等 |
ab+ | 以二进制读写形式打开文件,如果该文件已存在,文件指针将会放在文件的结尾。即新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行读写入。 |
读取文件
- read()方法,默认把文件所有内容一次性读取到内存,如果内存过大,对内存的占用会非常严重。
read(读取大小)是选择参数int的值确定文件读取的大小。 - readline()方法,可以一次读取一行内容,方法执行后,会把文件指针移动到下一行准备再次读取。
- 按行读取文件内容(一般读取大文件)。
- readline(n),从该行中读取前n个字符。
# 打开文件
f = open("文件名", encoding="utf-8")
while True:
# 读取一行内容
one_line = f.readline()
# 判断是否读取到内容,如果没有读到执行break语句,退出循环
if not one_line:
break
# 输出读取的内容
print(one_line)
# 在程序运行最后,调用close方法关闭文件
f.close()
- readlines()方法,读取所有行并返回列表。
写入文件
f = open("文件名", "w", encoding="utf-8")
f.write("hello world")
f.close()
- writelines(),函数参数可以是一个列表,也可以是一个字符串,即参数是一个可迭代对象。
f = open("文件名", "w", encoding="utf-8")
f.write(["1234567", "asdfghjkl"])
f.close()
with语法
with open("文件名", "打开方式", encoding="utf-8") as f:
f.方法名