python高级 之(四) --- 文件操作

文件操作

 1 """
 2 在程序中操作的文件内容:
 3     1. 读取文件中的内容
 4     2. 向文件中写入内容
 5 
 6 首先:
 7     在程序中与文件建立一个通道,通过通道操作文件指针,达到所要的结果
 8     向文件中不管读和写,在程序中都需要打开一个文件
 9 
10 文件打开方式:open()。会返回一个操作文件的手柄,可以理解为程序与文件之间建立的通道
11     handle = open(文件的路径,打开文件的模式--读、写,encoding="操作的文件到的编码方式")
12 详解:
13     1。文件路径既可以使用相对路径,也可以使用绝对路径
14     2。打开方式:
15         r --- 只读,如果指定路径对应文件不存在,回报错
16         w --- 只写,如果文件不存在,会创建新文件,如果文件存在 会清空文件中原来的内容 文件指针位于0处
17         a --- 只写,如果文件不存在,会创建新文件,如果存在 不会清空原文件的内容 文件指针位于文件的末尾
18 
19         r/w/a 这种模式,操作的字符串数据
20         rb/wb/ab  这种模式操作的是字节数据
21         r+/w+/rb+/wb+/ab+ 带有 + 号的是可读可写
22     3。编码方式:
23         urg-8/gbk
24 注意:程序无法处理程序之外产生的垃圾。需要手动处理垃圾(手动把通道关闭)
25    如果是字节模式处理数据打开文件时,不需要设置编码方式,否则会报错
26 """

文件读取

 1 #  文件读取
 2 """
 3 读取文件内容,是通过文件手柄来完成的
 4 读取的方式:
 5     read([size])
 6         如果不为size设值,默认是将文件中的内容全部读取
 7         如果设置size值:若文件中所剩内容小于size,文件剩多少读多少
 8             模式设置为"r", 表示读取size个字符
 9             模式设置为"rb", 表示读取size个字节
10     readling()
11         一行一行读取
12             模式设置为"r", 表示读取的是一行的字符串数据
13             模式设置为"rb", 表示读取是一行的字节数据
14     readlines()
15         按照行的样式,将文件中所有的数据读出。结果是列表类型的,一行为一个元素存放在列表中
16             模式设置为"r", 列表中的每个元素是字符串类型
17             模式设置为"rb", 列表中每个元素是字节数据类型的 
18 """
  • read()
 1 # read()。以 r 的形式 读取数据
 2 
 3 # 设置操作文件的路径
 4 path = r"静夜思.txt"
 5 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
 6 handle = open(path,"r",encoding="utf-8")
 7 
 8 # 通过手柄操作文件指针,读取数据
 9 data_str = handle.read()
10 print(data_str)
11 
12 # 设置读取大小时,读取部分之后 文件指针到了3的位置,再读的话从第4位置开始读取
13 data_string = handle.read(3)
14 print(data_string) # 结果:窗前名
15 
16 # 关闭通道
17 handle.close()
18 
19 # ------------------------------------------------------------------ #
20 
21 # read()。以 rb 的形式 读取数据
22 
23 # 设置操作文件的路径
24 path = r"静夜思.txt"
25 # 在程序中打开文件,建立文件与程序的通道。 以字节型数据读取
26 handle = open(path,"rb")
27 
28 # 以rb形式进行读取
29 data = handle.read(3)
30 print(data)
31 print(data.decode(encoding="utf-8"))
32 
33 # 关闭通道
34 handle.close()
  • readline()
 1 # readline()。以 r 的形式读取一行数据
 2 
 3 # 设置操作文件的路径
 4 path = r"静夜思.txt"
 5 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
 6 handle = open(path,"r",encoding="utf-8")
 7 
 8 # 通过手柄操作文件指针,读取数据
 9 data_str = handle.readline()
10 print(data_str)
11 
12 # 关闭通道
13 handle.close()
14 
15 # ------------------------------------------------------------------------ #
16 
17 # readline()。以 rb 的形式读取一行数据
18 
19 # 设置操作文件的路径
20 path = r"静夜思.txt"
21 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
22 handle = open(path,"rb")
23 
24 # 通过手柄操作文件指针,读取数据
25 data_str = handle.readline()
26 print(data_str) # 结果:b'\xe7\xaa\x97\xe5\x89\x8d\xe5\x90\x8d\xe5\xa4\x9c\xe5\x85\x89\n'
27 print(data_str.decode(encoding="utf-8"))
28 
29 # 关闭通道
30 handle.close()
  • readlins()
 1 # readlines()。以 r 的形式读取一行数据
 2 
 3 # 设置操作文件的路径
 4 path = r"静夜思.txt"
 5 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
 6 handle = open(path,"r",encoding="utf-8")
 7 
 8 lines = handle.readlines()
 9 print(lines) # 结果: ['窗前名夜光\n', '疑是地上霜\n', '举头望明月\n', '低头思故乡']
10 
11 # 关闭通道
12 handle.close()
13 # ------------------------------------------------------------------------------#
14 
15 # readlines()。以 rb 的形式读取一行数据
16 
17 # 设置操作文件的路径
18 path = r"静夜思.txt"
19 # 在程序中打开文件,建立文件与程序的通道。 以字符型数据读取
20 handle = open(path,"rb")
21 
22 lines = handle.readlines()
23 print(lines)
24 # 此时 列表中的数据全部是字节类型的。将列表中的数据 全部设置成字符串类型的
25 # 注意:⚠️ 字节数据只能和字符串进行编码解码,列表不可以
26 new_list = [ele.decode("utf-8") for ele in lines]
27 print(new_list)
28 
29 # 关闭通道
30 handle.close()

文件写入

with语句

数据持久化

文件上传

猜你喜欢

转载自www.cnblogs.com/TMMM/p/11404157.html
今日推荐