Python中的文件处理
读文件
步骤:1.打开文件;2.读取文件内容;3.关闭文件
打开文件
格式为:open(path, flags[, encoding][,errors] ):
path: 要打开文件的路径,
flags:文件的打开方式。
文件的打开方式主要有以下的几种:
‘r’ 以只读的方式打开文件,文件的描述符放在文件的开头。
‘rb’ 以二进制格式打开一个文件用于只读,文件的描述符放在文件的开头。
‘r+’ 打开一个文件用于读写,文件的描述符放在文件的开头。
‘w’ 打开一个文件只用于写入,若该文件已经存在则覆盖,若不存在则创建一个新的文件。
‘wb’ 打开一个文件只用于写入二进制,若该文件已存在则覆盖,若不存在则创建新文件。
‘w+’ 打开一个文件用于读写。
‘a’ 打开一个文件用于追加,若文件存在,文件描述符将会被放到文件的末尾。
‘a+’ 打开一个文件用于读写,若文件存在,文件描述符将会被放到文件的末尾。
encoding: 编码方式,常用的是utf-8和gbk。
errors: 错误处理。
举例说明:
path = r"E:\xxxx\xxxx\Python\Python入门\xxx.txt"
# ignore 忽略错误
# f = open(path,"r",encoding="utf-8",errors="ignore")
f = open(path,"r",encoding="utf-8")
读取文件内容
1.读取文件的全部内容
str1 = f.read()
print(str1)
2.读取指定的字符数
str2 = f.read(10)
print(str2)
str3 = f.readline(10)
print(str3)
3.读取整行,包括”\n”字符
str4 = f.readline()
print(str4)
4.读取所有行,并返回一个列表
list1 = f.readlines() print(list1)
5.若给定的数字大于0,返回实际size字节的行数
list2 = f.readlines(20) print(list2)
关闭文件
f.close()
读文件的完整过程
1.使用try和finally的方式:
try:
f1 = open(path, "r", encoding="utf-8")
print(f1.read())
finally:
if f1:
f1.close()
2.最为简便的读文件方式:
with open(path, "r", encoding="utf-8") as f2:
print(f2.read())
写文件
# 设置写入文件的路径:
path = r"E:\xxx\xxxx\Python\Python入门\写文件.txt"
f = open(path, "w", encoding="utf-8")
# 1.将信息写入缓冲区
f.write("Python是一种解释型的语言,在开发过程中没有了编译这个环节,类似于PHP和Perl语言。")
# 2.刷新缓冲区
# 直接将内部缓冲区的数据立刻写入文件,而不是被动的等待自动刷新缓冲区写入
f.flush()
# 关闭文件
f.close()
一种简便的写文件方式
with open(path, "a", encoding="utf-8") as f3:
f3.write("\nPython是一种交互式的语言,可以在一个Python提示符中,直接互动执行程序。")
输出结果为:
Python是一种解释型的语言,在开发过程中没有了编译这个环节,类似于PHP和Perl语言。
Python是一种交互式的语言,可以在一个Python提示符中,直接互动执行程序。
二进制文件的编码和解码
# 设置文件路径
path = r"E:\xxx\xxx\Python\Python入门\\编码.txt"
# 编码
with open(path, "wb") as f4:
str2 = "Python是一种解释型、面向对象、动态数据类型的高级程序设计语言"
f4.write(str2.encode("utf-8"))
# 解码
with open(path, "rb") as f5:
data = f5.read().decode("utf-8")
print(data)