分享

第15关、计算机的“新华字典”

 闲逸白发 2020-04-18

1、编码

1-1、二进制

(1)定义:二进制以 0 和 1 两种形态显示,例如 11 = 3(即 2¹x1 2ºx1=3);

(2)单位叫做【位】,也叫【比特】(bit),8个比特构成一个【字节】(byte);

  • 1 byte = 8 bit
  • 1 KB = 1024 B
  • 1 MB = 1024 KB
  • 1 GB = 1024 MB
  • 1-2、1 byte = 8 bit
  • 1 KB = 1024 B
  • 1 MB = 1024 KB
  • 1 GB = 1024 MB


  • ASCII码:英文大小写,字符,不支持中文;
  • GB2312码、GBK码:支持中文;
  • Unicode码:支持国际语言;
  • UTF-8码:支持国际语言。

1-3、encode()和decode()

(1)定义:encode()为编码,decode()为解码;

(2)使用

  • encode():‘你想编码的内容’.encode('你使用的编码表')
  • decode():‘你想编码的内容’.decode('你使用的编码表')

用decode()解码的时候则要注意,UTF-8编码的字节就一定要用UTF-8的规则解码,其他编码同理,否则就会出现乱码或者报错的情况

2、文件读写

2-1、读取文件

(1)步骤:打开文件 → 读取文件 → 关闭文件

2)具体流程

  • 打开文件:file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')
  • file1 变量用以存储读取的文件数据
  • '/Users/Ted/Desktop/test/abc.txt' 为文件路径
  • 'r' 表示 read(以读的形式打开文件),'w'为写入,'a'为追加
  • encoding='utf-8' 表示返回的数据采用的编码格式
  • 读取文件:filecontent = file1.read()
  • 关闭文件:file1.close()

2-2、写入文件

(1)步骤:打开文件 → 写入文件 → 关闭文件

(2)具体流程

和上方的读取文件流程一样,除了要把第二个参数改成'w',表示write,即以写入的模式打开文件。(w会给你暴力清空掉文件,然后再给你写入,可换为追加模式 'a'

2-3、拓展知识

  • with open('abc.txt','a') as file1(with open('文件地址','读写模式') as 变量名
  • readlines() 函数(按行读取):file1.readlines()
  • split()(字符串拆分):字符串.split()
  • join() 函数(合并字符串):字符串a.join(字符串b)

2-4、注意事项

2-4-1、打开 .txt 文件

问题:由于我们新建的 txt 文件默认为 ANSI 格式,而 Vscode 打开这种格式的文件时会显示乱码,如下图所示

解决:将要打开的 txt 文件另存为 utf-8 格式,保存后,Vscode就能正常打开文件内容了。

2-4-2、找不到文件

问题:所打开的文件不在对应的路径(文件夹)中。

解决:将要打开的 txt 文件与当前执行的 py 文件放在同一文件夹里,代码中的路径直接替换为文件名即可。

2-4-3、路径名被转义

问题:路径名中存在 \ ,使路径内容被转义,导致程序无法正常运行

解决:①、路径名前加上 r ;②、\ 换位 \\;③、\ 换位 /

2-4-4、打开内容存在非法字符

问题:读取的内容中存在非法字符 \ufeff

解决:代码中的 encoding='utf-8' 换为 encoding='utf-8-sig'

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多