文件的操作、读写模式、操作模式和文件的内置方法

今日总结

一、字符编码的实际应用

二、文件操作简介

三、文件的读写模式

四、文件的操作模式

五、文件的内置方法

一、字符编码的实际应用

1、编码和解码
  编码 (encode) :
    将人类能够理解的字符编码成计算机能够直接读懂的字符
  解码 (decode):
    将计算机能够理解的字符解码成人类能够直接读懂的字符
   # 编码  encode  
    l1 = '锄禾日当午 上班好辛苦'
    print(l1.encode('gbk'))
  # 结果为 b'\xb3\xfa\xba\xcc\xc8\xd5\xb5\xb1\xce\xe7 \xc9\xcf\xb0\xe0\xba\xc3\xd0\xc1\xbf\xe0'
"""
字符窜前面如果加了字母'b'表示该数据类型为bytes类型
bytes类型可以看成二进制
"""

# 解码  decode 
 l2 = b'\xb3\xfa\xba\xcc\xc8\xd5\xb5\xb1\xce\xe7 \xc9\xcf\xb0\xe0\xba\xc3\xd0\xc1\xbf\xe0'
print(l2.deocde('gbk'))
  # 锄禾日当午 上班好辛苦
    """
    基于网络传输数据,数据都必须是二进制格式 
    """

 2、如何解决乱码的问题
    数据当初以什么编码编,就用什么编码解码即可
l1 = '锄禾日当午 上班好辛苦'
res = l1.encode('gbk')
print(res)
res1 = res.decode('gbk')
print(res1)
res2 = res.decode('euc_kr')  # euc_kr 为韩国语言
print(res2)
3、python解释器层面
  python2解释器默认的编码是ASCII码
    1、文件头:必须写在文件的最上方,告诉解释器使用指定的编码
    coding:utf8
    美化后的写法: _*_ coding:utf8 _*_
     2、字符前缀:在使用python2解释器的环境下定义字符串要在前面加个u
      name = u'你好哇'
  在python3解释器中默认的编码是utf8

二、文件操作简介

1、文件的含义
  操作系显示给用户可以直接操作硬盘的快捷方式
    
2、代码操作文件的流程
  1、创建文件、打开文件
  2、编辑文件中的内容
  3、保存文件的内容
  4、关闭文件

3、基本语法结构
   结构1(了解):
    l1 = open()
    l1.close
    结构2(推荐使用):
    with open() as f:
        pass
"""  pass本身没有含义,主要为了不全结构,还有...也可以,但是使用率不高,容易被忽略
     """
# 使用关键字打开文件
'''  写路径为了防止特殊符号,在前面直接加r  '''
open(r'haha.txt')  # 相对路径(有一个参考系,用来找到文件)
open(r'F:\PycharmProjects\pythonProject3\haha.txt')  # 绝对路径(通过绝对路径可以不需要参考系,直接找到文件)
"""
open(括号里面放的是文件路径,文件的操作模式,文件的编码)
   1、文件的路径是必须要写的
   2、文件的操作模式、文件的编码在只写模式下必须写
"""
 # 在操作open完最后都需要执行close
    # with上下文管理
     with open(文件路径,文件的操作模式,文件的编码)as f:  # f = open()
         data = f.read()
        print(data)
    

文件的读写模式

r —— read  只读模式:只能读不能写
w —— write  只写模式:只能写不能读
a —— append  只追加模式:在文件末尾添加内容

1 、r模式

read ,r模式
# 在路径不存在时,直接报错
# 路径存在时,正常打开文件并等待内容读取
 with open(r'haha.txt', 'r', encoding='utf8') as f1:
    print(f1.read())
 """
 able在英语大部分情况下表示的是,具备什么什么的能力
 readable  具备读的能力
 writeable  具备写的能力 
 """

2 、w模式

write
路径不存在时,自动创建一个文件
路径存在时,先清空文件内容,然后写入数据
with open(r'haha.txt','w',encoding='utf8')as f1:
    f1.write('老老实实的,不要乱跑\n')
    f1.write('老老实实的,不要乱跑\n')
    f1.write('老老实实的,不要乱跑\n')
    print(f1.read())
   
'''  在多段一起write时,如果不使用分隔符分割,会都在一行里面,不会帮你自动分割,使用我们使用\n分隔符分割段'''

3 、a模式

# a模式
路径不存在,自动创建文件
路径存在:不会清空文件内容 而是在文件末尾等待新内容的添加
with open(r'haha.txt', 'a', encoding='utf8') as f1:
    f1.write('人生无常,大肠包小肠')
    print(f1.read())

四 、文件的操作模式

1 、t模式

文本模式
r —— rt
w —— wt
a —— at
这个模式只能操作文本文件
必须指定encoding参数
读写都是以字符串为最小单位

2 、b模式

二进制模式 ,可以操作任意类型的文件
 rb  不能省略b
 wb  不能省略b
 ab  不能省略b
 可以操作任意类型的文件
 不需要指定encoding参数
 读写都是以bytes类型为最小单位

五、文件内置方法

read()  # 他一次性读取文件内容
  1、在执行完之后光标如果在文件末尾,继续读取没有内容
  2、当文件内容特别大的时候,容易造成内存满

readline()  # 一次只读一行内容

readlines()  # 结果出来时,是一个列表,里面的元素对应的是文件的每行内容

readable()  # 判断当前这个文件是不是一个可读的

支持for循环  # 一行行的读取文件的内容,内存中同一时刻只有一行内容

write()  # 写入文件的内容(字符串或者bytes类型)

writelines()  # 可以将列表中多个元素写入文件

writable()  # 判断文件是不是可以写的

flush  # 保存的意思,先当与ctrl + s

今日内容总结

posted @ 2022-03-14 19:32  未月  阅读(194)  评论(0)    收藏  举报