天天看点

python-文件操作-读,写,追加

'''
open(文件的路径,打开文件的方式,打开的文件编码)

文件的路径:
 可以使用绝对路径,也可以使用相对路径  建议使用相对路径
 打开文件的方式
 访问文件的方式
        r ---只读方式打开文件,文件的执政会放在文件开头,如果文件不存在就会报错
        w ---打开一个文件只用于写入,如果这个文件已存在,就将文件替换,如果文件不存在,创建文件
        a ---打开一个文件用于追加,文件存在的话 文件执政会放在文件的结尾,如果文件不存在创建文件
        r+ ---打开一份文件进行读写 文件的执政将会放在文件的开头
        w+ ---打开一个文件进行读写 如果这个文件已存在,将文件替换,如不存在,创建新文件
        a+ ---打开一个文件进行读写 文件存在的话 文件指针会放在文件的结尾 ,如文件不存在创建新文件

        rb ---以二进制形式打开只读方式打开文件,文件的执政会放在文件开头,如果文件不存在就会报错
        wb ---以二进制形式打开打开一个文件只用于写入,如果这个文件已存在,就降文件替换,如果文件不存在,创建文件
        ab ---以二进制形式打开打开一个文件用于追叫,文件存在的话 文件指针会放在文件的结尾,如果文件不存在创建文件
        rb+ ---以二进制形式打开打开一份文件进行读写 文件的指针将会放在文件的开头
        wb+ ---以二进制形式打开打开一个文件进行读写 如果这个文件已存在,将文件替换,如不存在,创建新文件
        ab+ ---以二进制形式打开打开一个文件进行读写 文件存在的话 文件指针会放在文件的结尾 ,如文件不存在创建新文件
        以二进制形式操作文件时,不要设置文件的编码方式
'''
'''
读取的方式
read() ---一次性全部读取
read(size)---如果模式是以字符形式打开文件的 这个size便是的时读取子的的个数
          ---如果模式时以字节[二进制]形式打开的 这个size表示的时读取字节大小      
readline()---读取一行数据
readlines()---读取所有行数据,并吧每一行当着元素放在列表中

      
读取内容时,不会重复读取--类似迭代器

与文件进行交互完毕关闭通道---不管是否出现异常-通道都需关闭      
读取文件

目录结构      
1 #建立与文件之间的通道
 2 file_path = r'../test_01/os.py'
 3 
 4 #以字符形式打开一个文件 用于只读
 5 handle = open(file_path,'r',encoding='utf-8')
 6 
 7 
 8 
 9 #打开文件 文件指针的默认位置是开头
10 #移动文件指针
11 handle.seek(2)
12 
13 #读取数据2字节数
14 data =handle.read(2)
15 print(data)
16 #
17 data =handle.read(10)
18 print(data)
19 '''
20 po
21 rt os
22 
23 #获取
24 '''
25 #读取一行数据
26 #已换行行为结束点的位置叫做一行
27 line_data = handle.readline()
28 print(line_data)
29 
30 #读取所有行
31 line_data = handle.readlines()
32 print(line_data)
33 
34 #以只读形式打开
35 handle = open(r'../test_01/os.py', "r", encoding='utf-8')
36 
37 #以二进制方式读取
38 handles = open(r'../test_01/os.py','rb')
39 
40 #通过通道读取数据
41 data =handle.read()
42 print(data)
43 
44 data1 =handles.read()
45 print(data)
46 print(data1)
47 
48 #关闭通道
49 handle.close()      

 写入文件与追加内容

'''
write(content)---如果模式是以字符形式打开文件的 这个content表示的是字符串数据
              ---如果模式时以字节[二进制]形式打开的 这个content表示是字节数据
writelines(容器)---如果模式是以字符形式打开文件的 这个容器是字符串数据
              ---如果模式时以字节[二进制]形式打开的 这个容器中的数据是字节数据
'''
追加内容"w"改为'a'      
1 file_path =r'..	est	est.txt'
 2 
 3 #建立与文件之间的通道
 4 handle = None
 5 try:
 6     #文件存在会被清空
 7     handle = open(file_path,'w',encoding='utf-8')
 8     handle.write('啦啦啦')
 9     #写入多行数据需加换行符
10     handle.writelines(['lkekekek
','hjshshshs
','啦啦啦啦啦
'])
11     handle.flush()
12 
13 except Exception as e:
14   print(f'出现异常,异常情况是{e}')
15 
16 finally:
17   if handle:
18    handle.close()
19    handle = None