python基础之 字符编码与文件操作

目录

一、debug调试

二、员工管理系统

三、字符编码

四、字符编码发展史

五、字符编号实操

六、文件操作

七、文件读写模式

一、debug调试

1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)
2.之后右键点击debug运行代码

python基础之 字符编码与文件操作

二、员工管理系统

三、字符编码

现在默认使用的编码是utf8。
字符编码只跟文本文件和字符串有关,也就是只跟纯文本有关,跟其他的视频、图片之类的都无关。
字符编码:由于计算机内部只能识别二进制,但是用户在使用计算机的时候却可以看成各式各样的语言字符。字符编码内部记录了人类字符与数字的对应关系。
python基础之 字符编码与文件操作

四、字符编码发展史

1.一家独大
计算机最初是由美国人发明的 美国人为了能够让计算机识别英文字符
ASCII码:里面记录了英文字符与数字的对应关系,用一个字节来是对应关系。
所有的英文字符和符号加起来其实不超过127,之所以使用八位是为了后续发现新的语言。

python基础之 字符编码与文件操作

2.群雄割据
中国人:为了能够让计算机识别中文 我们需要发明另外一套编码表
GBK码:记录了英文中文与数字的对应关系,对于英文还是使用一个字节,对应中文使用两个字节甚至更多字节,两个字节其实也不够表示出所有的中文,遇到生僻字可能需要更多位来表示。

日本人:为了能够让计算机识别日文 也需要发明一套编码表
shift_JIS码:记录了日文英文与数字的对应关系

韩国人:为了能够让计算机识别韩文 也需要发明一套编码表
Euc_kr码:记录了韩文英文与数字的对应关系

3.天下一统
为了能够实现不同国家之间的文本数据能够彼此无障碍交流需要对编码统一。
unicode(万国码:1994年产生):统一使用两个及以上字符记录字符与数字的对应关系
utf8(万国码的优化版本):将英文还是用一个字节存储,将中文使用三个字节或更多字节存储
现在默认使用的编码是utf8。

五、字符编号实操

1.如何解决文件乱码的情况:文件当初以什么编码编的 打开的时候就以什么编码解

2.python解释器版本不同带来的编码差异:python2.X内部使用的编码默认是ASCII;python3.X内部使用utf8码,解决问题可以在文件头加上# coding:utf8,然后在python定义的数据类型前面加个u

python基础之 字符编码与文件操作

2.1 自定义模板(python3中可以兼容python2):
自定义文件模板内容
file
settings
Editor
file and code templates
python script
python基础之 字符编码与文件操作

3.编码与解码
编码:将人类能够读懂的字符安装指定的编码转换成数字>>> .encode()
解码:将数字按照指定的编码转换成人类能够读懂的字符>>> .decode()

python基础之 字符编码与文件操作

六、文件操作

文件:操作系统暴露给用户简单快捷操作硬盘的接口。
代码如何操作文件:关键字open();三步走:1.利用关键字open打开文件;2.利用其它方法操作文件; 3.关闭文件
文件路径:相对路径与绝对路径
路径中出现了字母与斜杠的组合产生了特殊含义如何取消:在路径字符串前面加一个r >>> eg: r'D:\py20\day08\a.txt'
格式(with上下文管理(能够自动实现close())):
with open(r'文件路径',读写模式,字符编码) as f1:
print(f1.read())

res = open(r'D:\90pycharm\python\DAY 09\a.txt', 'r', encoding='utf8')
print(res.read())
res.close()

'''
格式:
open(r'文件路径',读写模式,字符编码)
	文件路径和字符编号是必须的,读写模式是可以选的(有些模式需要编码)
格式变形:
with open(r'文件路径',读写模式,字符编码) as f1:
	print(f1.read())
'''
with open(r'a.txt', 'r', encoding='utf8') as f1:  # 这里的f1相当于f1=open(),f1=close()
	print(f1.read())

python基础之 字符编码与文件操作

七、文件读写模式

1.小知识点: 补全语法结构,没实际含义:
pass或者...

2.r:只读模式(只能看不能改)

# r 模式:当路径存在
with open(r'a.txt', 'r', encoding='utf8') as f1:
	print(f1.read())  # .read() 读取文件内所有的内容
	print(f1.write())  # .write() 写文件内容
# r 模式:当路径不存在,直接报错
with open(r'c.txt', 'r', encoding='utf8') as f1:
	pass

python基础之 字符编码与文件操作

3.w:只写模式(只能写不能看)

# w 模式:路径不存在自动创建
with open(r'c.txt', 'w', encoding='utf8') as f1:
	pass
# w 模式:当路径存在:1.会先清空文件内容  2.再执行写入操作
with open(r'a.txt', 'w', encoding='utf8') as f1:
	# print(f1.read())  # .read() 读取文件内所有的内容
	f1.write('嘿嘿嘿')  # .write() 写文件内容

python基础之 字符编码与文件操作

4.a:只追加模式(追加内容)

# a 模式:路径不存在自动创建
with open(r'c.txt', 'a', encoding='utf8') as f1:
	pass
# a 模式:当路径存在:1.不能读 2.在原有的基础上新增执行的写入,执行一次就新增一次
with open(r'a.txt', 'a', encoding='utf8') as f1:
	# print(f1.read())  # .read() 读取文件内所有的内容
	f1.write('嘿嘿嘿\n')  # .write() 写文件内容
	f1.write('嘻嘻嘻\n')

python基础之 字符编码与文件操作

上一篇:python读写文件with open


下一篇:linux 无线配网