标签:编码 文件 读写 encoding 模式 内容 今日 open
今日内容概要
- 字符编码
- 编码与解码
- 文件操作
- 读写模式
- 操作模式
- 作业
今日内容详细
字符编码
#前提:
计算机是基于电工作的 而电信号只有高低电频两种状态
所以计算机只认识两种状态 人为的定义为0和1
人类的字符与数字之间存在对应关系
#发展史
1.一家独大
ASCII码:内部记录了英文与数字的对应关系
2.群雄割据
中国GBK码:内部记录了英文、中文与数字的对应关系
韩国Euc_kr码:内部记录了英文、韩文与数字的对应关系
日本shift_JIS码:内部记录了英文、日文与数字的对应关系
3.天下一统
unicode码(万国码):内部记录了国家文字与数字的对应关系
utf8(万国码优化版本):目前默认使用该编码
"""
如果文本文件出现了乱码,尝试切换字符编码即可
"""
编码与解码
#编码
按照指定的编码本将人类的字符编程成计算机能够识别的二进制数据
#解码
按照指定的编码本将计算机的二进制数据解析成人类能够读懂的字符
eg:
res = '啦啦啦啦啦啦'
#编码
res1 = res.encode('gbk')
print(rest1)
#解码
res2 = res1.decode('gbk')
print(res2)
文件操作
#第一种
with open(文件路径,读写模式,字符编码) as 变量名:
with子代码
#第二种
变量名 = open(文件路径,读写模式,字符编码)
一系列操作
变量名.colse()
读写模式
r (只读模式)
1.文件路径不存在会直接报错
2.文件存在则打开并可读取文件内容
#光标在文件开头
eg:
with open(r'aaa.txt', 'r', encoding='utf8') as f:
print(f.read()) # 一次性读取文件内容
w (只写模式)
1.文件路径不存在会自动创建
2.文件路径存在会先清空该文件内容然后再写入
eg:
with open(r'aaa.txt', 'w', encoding='utf8') as f:
f.write('你好世界\n')
a (只追加模式)
1.文件路径不存在会自动创建
2.文件路径存在光标会移动到文件末尾
eg:
with open(r'aaa.txt', 'a', encoding='utf8') as f:
f.write('啦啦啦')
补充
读取优化
eg:
with open(r'aaa.txt', 'r', encoding='utf8') as f:
for line in f: # 一行行读取文件内容 能够避免内存溢出
print(line)
操作模式
#t模式
文本模式(也是上述三种读写模式默认的模式)
rt
wt
at
1.该模式只能操作文本文件
2.该模式下必须指定encoding参数
3.读写都是以字符串为单位
#b模式
二进制模型
rb
wb
ab
1.该模式可以操作任意类型的文件
2.该模式下不需要指定encoding参数
3.读写都是以bytes(二进制)为单位
标签:编码,文件,读写,encoding,模式,内容,今日,open 来源: https://www.cnblogs.com/gh2805/p/15147845.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。