python基础学习

内容概要


  • 字符编码的简介
  • 字符编码的发展史
  • 字符编码的实际应用
  • 文件操作简介
  • 文件读写模式
  • 文件操作模式
  • 文件操作方法

内容详情


字符编码的简介

# 字符编码主要研究的对象是文本文件(图片、视频、音频除外)
文本编辑器读取文件内容的流程
阶段1、启动一个文件编辑器(文本编辑器如nodepad++,pycharm,word)
阶段2、文件编辑器会将文件内容从硬盘读入内存
阶段3、文本编辑器会将刚刚读入内存中的内容显示到屏幕上
python解释器执行文件的流程
阶段1、启动python解释器,此时就相当于启动了一个文本编辑器
阶段2、python解释器相当于文本编辑器,从硬盘上将test.py的内容读入到内存中
阶段3、python解释器解释执行刚刚读入的内存的内容,开始识别python语法
计算机底层存储数据的原理
"""只认识0101010的二进制数字"""

字符编码的发展史

# 字符编码表:内部就是存储了数字与人类字符的对应关系

1.美国
定义一个数字与英文字符的对应关系>>>:字符编码表
ASCII码:只记录了英文字符与数字的对应关系
1bytes存储英文字符
"""
A-Z:65-90
a-z:97-122
"""
2.中国
自己发明一套编码表>>>:数字与中文、英文字符的对应关系
GBK码:记录了英文、中文与数字的对应关系
1bytes存储英文字符
2bytes存储中文字符 如果不够则使用3bytes\4bytes
韩国
韩国棒子也发明了他们的编码表>>>:数字与韩文、英文字符对应的关系
Euc_kr:记录了英文、韩文与数字的对应关系
日本
小日本也发明了他们的编码表>>>:数字与日文、英文字符对应的关系
shift_JIS:记录了英文、日文与数字的对应关系
...
"""
群雄割据的阶段会产生一个非常奇怪的现象>>>:乱码
其实就是编码本使用混乱导致文本展示错误
"""
3.unicode # 万国码
"""内部记录了所有国家的字符与数字的对应关系"""
所有的字符统一采用最少2bytes存储
现在的计算机可以输出所有国家的字符 内存使用的是unicode编码
unicode会浪费存储空间和IO时间 所以又开发了一个编码
utf8 # unicode transformation format
优化了unicode存储数据的容量
1bytes存储英文字符
3bytes存储中文字符
# 结论:内存中的编码不需要考虑 值考虑硬盘上的即可 utf8

字符编码的实际应用

# 编码与解码
encode 编码 将人类能够读懂的字符编码成计算机能够读懂的字符 print(str.encode('gbk'))
decode 解码 将计算机能够读懂的字符解码成人类能够读懂的字符 print(str.decode('gbk'))
'''字符串前面如果加了字母b 表示该数据类型为bytes类型 bytes类型可以看成是二进制'''
'''基于网络的数据传输 数据都必须是二进制格式 所以肯定涉及到编码与解码''' # 如何解决乱码
数据当初以什么编码编的就以什么码解即可 # python解释器层面
python2解释器默认的编码是ASCII码
1.文件头:必须写在文件的最上方 告诉解释器使用指定的编码
coding:utf8 美化写法:-*-coding:utf8-*-
2.字符前缀:在使用python2解释器的环境下定义字符串习惯在前面加u
name = u'你好啊'
python3解释器默认的编码是utf8

文件操作简介

'''文件即操作系统暴露给用户可以直接操作硬盘的快捷方式'''

# 代码操作文件的流程
1.打开文件、创建文件
2.编辑文件内容
3.保存文件内容
4.关闭文件 ## 基本语法结构
结构1
f1 = open()
f1.close()
res = open(r'路径', 'r', encoding='utf8') 使用关键字打开文件
'''以后写路径为了防止特殊符号 直接加r'''
'''open(文件的路径,文件的操作模式,文件的编码) 文件的路径是必须要写的'''
print(res.read()) 读取文件内容
res.close() 关闭文件
"""上述操作open完最后都需要执行close 而close这一行很任意被遗忘"""
结构2
with open() as f:
pass
with open(r'路径', 'r', encoding='utf8') as f: with上下文管理
data = f.read()
print(data) '''pass (推荐)补全语法结构 本身没有任何功能'''
'''... (不推荐)补全语法结构 本身没有任何功能'''

文件的读写模式

r模式 r read 只读模式:只能读不能写
with open(r'路径', 'r', encoding='utf8') as f1:
print(f1.read()) # 一次性读取文件内所有的内容
f1.write('python是最牛逼的语言!!!') # 报错
路径不存在:直接报错
路径存在:正常打开文件并等待内容读取 w模式 w write 只写模式:只能写不能读
with open(r'路径', 'w', encoding='utf8') as f1:
f1.write('文本内容\n') # 写入文件内容
print(f1.read()) # 报错
"""
换行 最早的时候:\r\n
为了节省空间支持一个字符 根据操作系统的不同可能有所区别
\n 、 \r
"""
路径不存在:自动创建文件
路径存在:先清空文件内容 之后再写入数据 a模式 a append 只追加模式:在文件末尾添加内容
with open(r'路径', 'a', encoding='utf8') as f1:
f1.write('文本内容\n') # 写入文件内容
print(f1.read()) # 报错
路径不存在:自动创建文件
路径存在:不会清空文件内容 而是在文件末尾等待新内容的添加

文件的操作模式

t模式
文本模式 是默认的模式
r rt
w wt
a at
1.该模式只能操作文本文件
2.该模式必须要指定encoding参数
3.该模式读写都是以字符串为最小单位
b模式
二进制模式 可以操作任意类型的文件
rb 不能省略b
wb 不能省略b
ab 不能省略b
1.该模式可以操作任意类型的文件
2.该模式不需要指定encoding参数
3.该模式读写都是以bytes类型为最小单位

文件内置方法

read()  一次性读取文件内容
1.执行完之后光标在文件末尾 继续读取没有内容
2.当文件内容特别大的时候 容易造成内存溢出(满了)
readline() 一次只读一行内容
readlines() 结果是一个列表 里面的各个元素是文件的一行行内容
readable() 判断当前文件是否可读
支持for循环 一行行读取文件内容(推荐使用) 内存中同一时刻只会有一行内容
write 写入文件内容(字符串或者bytes类型)
writelines() 可以将列表中多个元素写入文件
writeable() 判断文件是否可写
flush() 相当于主动按了ctrl+s(保存)

python基础学习9的更多相关文章

  1. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  5. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  6. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  7. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  8. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

  9. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  10. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

随机推荐

  1. python2.7安装pyinstaller

    python2.7直接安装pyinstaller会报错,版本4与python2不兼容,所以我们安装时需指定兼容的pyinstaller版本号.安装命令如下: pip2 install pyinstal ...

  2. Python入门-import导入模块功能

    1.啥是模块 模块(module):用来实现或者多个功能的Python代码,(包含变量.函数.类),本质就是*.py后缀文件. 包(package):定义了一个由模块和子包组成的Python应用程序执 ...

  3. 变量 数据类型 条件if语句

    python是解释型  弱类型编程语言;  "优雅", "明确", "简单";  开发效率非常高;  可移植性;  可扩展性; 可嵌入型. ...

  4. iwdg和wwdg

    一.什么是看门狗? 在单片机工作的时候经常会出现受到外界电磁场的干扰导致程序跑飞,而陷入死循环,而使整个系统陷入无法正常工作的状态. "看门狗"是一种专门用于监测单片机程序运行状态 ...

  5. java实现ssh连接工具类

    import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import ...

  6. Git原理学习记录

    Git原理学习记录 1.git init git-test ​ git init 实际上就是在特定的目录下创建对应的目录和文件 2.object $ echo "V1" > ...

  7. Codeforces Round #752 (Div. 2) A B C

    Problem - A - Codeforces Problem - B - Codeforces Problem - C - Codeforces A. Era 每个a[i] - i 表示的是当前a ...

  8. 论文解读(AutoSSL)《Automated Self-Supervised Learning for Graphs》

    论文信息 论文标题:Automated Self-Supervised Learning for Graphs论文作者:Wei Jin, Xiaorui Liu, Xiangyu Zhao, Yao ...

  9. Blazor Bootstrap 组件库浏览器通知组件介绍

    通知组件 通过浏览器API发送通知信息 , 桌面浏览器表现为右下角系统提示框弹出消息, 移动浏览器表现为弹窗或者到消息列表, blazor页面不在前台也可以通过本组件提醒用户. DEMO https: ...

  10. VSCode 前端常用插件集合

    Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 但工欲善其事必先利其器,以下是本人为前端开发收集的常用的vs ...