zoukankan      html  css  js  c++  java
  • Python:如何读写文本文件

    关于文件操作,参考:Python:文件操作

    知识点杂集:

    一、文件存储与读取的步骤:

    1)思路:

    1. str.encode('编码格式'):对unicode字符串进行编码,编码成连续字节的格式,才能存放到文件中,即物理介质上
    2. str.decode('解码格式'):对物理介质上的连续字节数据进行解码,解码常unicode格式的数据,才能在python的IDE上显示;

    #编码格式:UTF-8、GBK、BIG5;

    #python内部用unicode编码,来表示一个字符;显示格式也是unicode;

      ==>unicode编码才是真正意义上的字符串;

    2)打开文件、将数据存储到文件中、关闭文件、打开并读取文件内容

    A、打开文件:open()函数

    完整格式:open(file, mode = 'r', buffering = -1, encoding = None, errors = None, newline = None, closefd = True, opener = None)

    #file:需要打开的文件的物理地址 + 文件名;默认打开当前目录(IDE所操作的.py文件所在文件夹)下的文件,即只有文件名,不带文件物理地址;

    #mode:打开的方式;

    二、实例

    实例1:unicode格式和str格式的转换:

    s = u'你好'
    
    #encode(编码格式),指定编码格式,对unicode字符串进行编码,
    r = s.encode('utf-8')
    print(r)
    #输出:b'xe4xbdxa0xe5xa5xbd'
    #b'xe4xbdxa0xe5xa5xbd':共用了6个字节(xe4为一个字节)来编码字符串 '你好';
    #得到一个string的字符串,即连续字节的字符串;
    #只有string的字符串,才能存到物理介质中,
    
    #decode('解码格式'),对编码的string格式的字符串进行解码;
    print(r.decode('utf-8'))
    #输出:你好
    #encode选择的编码格式,要和decode选择的解码格式统一(都用utf-8),不然得不到最初的数据;

    实例二:数据存放文件内、从文件内读取数据

    三、其它:

    1)unicode格式的数据,不能够直接存储到文本文件中,必须以一种编码格式(如UTF-8),将数据编译成连续字节的格式(如str),才能存放到文件中;

    2)从文本文件中读取的也是编码后的字节,要想显示原始数据,需要对其进行解码:str.decode('解码格式')

      注:解码的格式,要于文件编码时的格式统一,不然得不到最初数据;

    3)从python2到python3,字符串的语义变化:

    python2 ——> python3
    ----------------------
    str     -> bytes
    unicode -> str

    4)str,表面上表示的是字符串,实际上抽象的是一个连续的字节;

      ==>因为,早起美国人发明字符编码(ascii码)时,一个字节表示一个字符,只针对一个字符(不是字符串)进行编码的,若想要多个连续的字符串,则给出一个连续的字节;

      ==>后来,由于各国语言的字符种类较多,一个字节表示一个字符,无法满足需(表示不完),则各种编码格式被发明,其中unicode是比较通用的一种;

  • 相关阅读:
    CentOS 7安装Splunk
    OpenSwitch操作系统成为Linux基金会官方项目
    新手选择使用 Linux 桌面的七个注意点
    SELinux入门
    新一代 Tor发布,它牛在哪里?
    【光环国际】一位老太太的需求
    【情商】为人处世
    【Teradata】磁盘碎片整理(ferret工具)
    【架构解密】第六章 深入解析分布式存储
    【大数据技术】HBase Meetup资料
  • 原文地址:https://www.cnblogs.com/volcao/p/8807097.html
Copyright © 2011-2022 走看看