编码的进阶

ASCII:英文字母,数字,特殊符号,——>  二进制的对应关系

Str:

1个字符——> 1个字节

Unicode:万国码:世界上所有的文字与二进制的对应关系

1个字符——> 4个字节

Utf-8:至少用8位1个字节表示一个字符。

英文:一个字节

中文:三个字节

Gbk:国标

英文:一个字节

中文:两个字节

以上总结:

i.          不同的编码之间的0101010是不能互相识别的,除ASCII外。

ii.          网络传输,数据存储到磁盘你用的0101010这种二进制,不能使用unicode的编码本去编译。

大背景:python3x版本。

Str:它在内存中的编码方式:unicode

写入文件的内容、传输给别人的数据,一般都是str的形式。所以此处有矛盾点:网络传输,数据存储到磁盘你用的0101010这种二进制,不能使用unicode的编码本去编译。但python3x又需要str形式去操作。对此用以下方法:

利用str发送或传输

(转换,将Unicode编码转化成非Unicode)——>发送、传输

Int

Bool

Str

Bytes:与str几乎一模一样。

List

Dict

Set

Tuple

Str与bytes的区别:

英文:

Str在内存中的编码:Unicode

表现形式:‘taibai’

Bytes在内存中的编码:非Unicode

表现形式b”taibai”

中文:

Str在内存中的编码:非Unicode

表现形式:’中国’

Bytes在内存中的编码:非Unicode

表现形式:b’\a\xcc…..

#终极转换:

Str->str.decode(‘utf-8’)->传输过程->str.encode(‘gbk’)

Decode:编码   encode:解码

文件操作的初识

f=open(‘文件路径’,encoding=’编码方式’,mode=’r’)

print(f.read())

f.close()

出现问题:

  1. 路径问题:

r”D:\0新建文本文档”, encoding=’编码方式’,mode=’r’

”D:\\0新建文本文档”, encoding=’编码方式’,mode=’r’

  1. 编码的问题:

编码要与文件存储时的编码保持一致

  1. 可能隐藏了后缀名

文件的读:

四种模式:

r r+ rb r+b ….  r模式下n代表字符 , r模式下n代表字节

每种模式下有5种读取模式

  1. print(f.read()): 全部读取
  2. print(f.read(n)):按字符读。
  3. print(f.readline()):按行读。
  4. print(f.readlines()):返回一个list 列表的每个元素是源文件的每一行。
  5. 循环读取:

for line in f:

print(line)

r:直接读取

rb:以字节的形式读取。 带b的一般操作的都是非文字类的文件。

文件的写:

r+:读写模式-先读后写。

w w+ wb w+b

w:没有文件则创建文件并写入内容。如果有文件,先清空原先内容,再写入。  f.write(‘alex’)

wb:先用rb读取别的文件内容,然后把内容赋值给一个变量,最后再把这个变量写入别的文件。

文件的追加

a ab a+ a+b

a:没有文件,创建文件,写入内容。如有文件,就在原文件内容后面追加内容。

a+:追加并读

其他操作

f.flush()   强制保存

readable writeable        判断是否可读可写

print(f.readable())

print(f.writeable())

seek tell  调整光标的位置(按字节调整)/获取指针位置

truncate  对原文件进行(按字节从头)截取,必须在可写情况下使用。(seek对truncate不管用)

最常用的方法:read seek tell flush readable writeable

打开文件的第二种方式(省去了写f.close()):

with open(‘文件路径文件名’,encoding=’utf-8’) as f1:

print(f1.read())

       优点:1.省去了写f.close();2.一个with语句可以操作多个文件句柄。

       with open(‘文件路径文件名’,encoding=’utf-8’) as f1,open(‘文件路径文件名’,encoding=’utf-8’) as f2:

缺点:有时候关闭文件和硬件有关

文件的改:

  1. 以读的模式打开源文件。
  2. 以写的模式创建一个新文件。
  3. 将原文件内容读取出来,按照你的要求更改成新内容,写入新文件。
  4. 删除原文件。
  5. 将新文件重命名成原文件。

low版改名:

19-3-8Python中编码的进阶、文件操作初识、深浅copy的更多相关文章

  1. python基础之 编码进阶,文件操作和深浅copy

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...

  2. python基础 (编码进阶,文件操作和深浅copy)

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码. 即先将其他编码的字符串解码(decode)成unicode,再从uni ...

  3. day 0308 编码的进阶 文件操作

    一.编码的进阶: 在python3以后,字符串和bytes类型彻底分开,字符串以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用与字符串方法基本一样,也 ...

  4. python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数

    目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...

  5. 员工管理系统+字符编码+Python代码文件操作

    员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1  debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...

  6. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  7. day07----字符编码解码、文件操作(1)

    字符编码: 什么是字符编码? 字符编码是将人识别的字符转换成计算机能识别的二进制字符(01),转换的规则就是编码表. 人能识别的字符串  与  计算机能识别的二进制字符 两者之间对应关系构成的结构称为 ...

  8. 字符编码和python文件操作

    字符编码和文件操作 目录 字符编码和文件操作 1. 字符编码 1.1 什么是字符编码 1.2 字符编码的发展史 1.2.1 ASCII码 1.2.2 各国编码 1.2.3 Unicode 1.3 字符 ...

  9. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

随机推荐

  1. LintCode2016年8月22日算法比赛----平面列表

    平面列表 题目描述 给定一个列表,该列表中的每个要素要么是个列表,要么是整数.将其变成一个只包含整数的简单列表. 注意事项 如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表. 样例 给定 ...

  2. 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

    问题描述: 有时候使用 apt-get 终端提示这样的错误信息: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/ ...

  3. Appium+java移动端项目测试问题整理

    一.每次打开APP都要重新安装.充值账号密码 解决:打开appium,设备,Use Browser  ,勾选“No Reset”   二.一个页面包含相同文字,打开页面路径错误 问题描述:APP处于[ ...

  4. RAP, 高效前后端联调框架,接口文档管理工具

    RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据.校验真实接口的正确性,使接口文档成为开发流程中的强依赖.有了结构化的API数据,RAP可以做的更多, ...

  5. maven-windows使用

    目录 前言 安装 配置镜像 idea配置Maven 私服 安装到centos 访问 客户端配置私服 idea修改指定pom 项目发布到私服 jar包会自动从私服下载 从客户端导入第三方jar包 前言 ...

  6. Oracle replace()函数

    往Oracle 中导入数据时,有一个列导入的数据应该时‘2017-04-17’ 的格式,结果导入的数据为 ‘2017/04/17’格式的,1000多条记录要一条条改基本不可能. 于是想到了replac ...

  7. javascript animation lib greensock gsap介绍

    一般前台做动画有以下几种方式: 1. 简单的css transition动画; 2. css animation动画 3. javascript库动画 一般来说css html5动画只适用于简单的形变 ...

  8. Scratch3.0——项目层次结构

    原文地址:https://blog.csdn.net/weiwoyonzhe/article/details/86603757 简要介绍: 本文旨在介绍scratch3.0项目层次结构及关键功能. 源 ...

  9. 巧用花生壳将局域网内的FTP和www服务器发布到互联网

    一.目的:用生壳发布FTP和mail服务器到互连网. 二.网络环境:(出租房多家共用路由器上网,ADSL的1Mbps带宽,动态PPPOE拨号,帐号和密码存储在soho路由器中,路由器自动联机上网,并为 ...

  10. 在Windows10中破解一些软件

    在Windows10中破解一些软件 一.前言   以前的windows是很好破解的,这里说的windows包含了windows的一些产品,比如说office,visio等等,可是自从到了新版的wind ...