数据编码规则和文件读写

编码,

是从一种形式转换成另一种形式的过程。解码,是编码的逆过程
用预先规定的方法将数字,文本等信息转换成编码,或将信息,数据转换为规定的电脉冲信号。
二进制:用0 或1 表示,每个数字称为bit
从二进制的右边第一个数开始,每一个乘以2的n次方,n从0开始,每次递增1。然后得出来的每个数相加即是十进制数
例 10010
1X24+0x23+0x22+1x21+0x2**0=18
8个bit等于一个byte(字节)
bps=bite per second

  1. ACSLL编码:用七位或八位二级制编码来表示128或256中可能字符
    使用7位二进制(剩下的1位二进制位0)来表示所有的大写和小写字母,数字及标点符号。

2.GB(国标)编码:比较常用的是GB2312和GBK两种。GBK编码是对GB码的扩展,对多达两万多的简繁汉字进行了编码。

  1. unicode:将世界上所有文字都纳入其中,一个网页也可以显示多种语言,每个字符占两个字节,浪费 : UTF-8(8-bit
    Unicode Transformation Format),它是一种针对Unicode的可变长字符编码,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。而且UTF-8还可以兼容ASCII编码。
  • Unicode是内存编码的规范,而UTF-8是如何保存和传输Unicode的手段
  • 2,8,16都是2的次方,方便相互转换
  • 8进制是用0,1,2,3,4,5,6,7;16进制是用0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f来表示。
  • python输入默认Unicode
    |encode| decode |
    |表示将Unicode转换成其他编程语言|例:name.encode(‘GB2312’)|
    | decode| 表示将其他编程语言转换为Unicode |

encode编码

print('西西'.encode('gbk'))
print('西西'.encode('utf-8'))
or
str='xixi'
str.encode()

decode解码

bytes='xixi'.encode()
bytes.decode()
此处默认为utf-8解码,使用其他应写成decode('gbk')模式

文件读写

打开文件-读取文件-关闭文件

file = open('文件路径.txt','r',encoding='utf-8')
#'r'表示read,意思是以读的方式打开文件
file_data=file.read()
print(file_data)
file.close()
#关闭文件

文件绝对路径windows系统写法

#写法1 加上转义符
'C:\\Users\\Administrator\\Desktop\\py_demo\\class_16\\verse.txt'
写法2 前面加 r
r'C:\Users\Administrator\Desktop\py_demo\class_16\verse.txt'

打开文件-写入文件-关闭文件

file=open('文件路径.txt','w',encoding=('utf-8'))
#w表示写入文件
如果不想覆盖原文件,w改成a(append)

写入文件还有另外一个方法:writelines()函数。用于向文件中写入一序列的字符串,比如字符串列表。我们把刚才写入文件的代码改为使用writelines()就是:

file = open('verse.txt','a',encoding='utf-8')
file.writelines(['明月几时有?\n','把酒问青天。\n'])
file.close()

with关键字写法,可以避免打开文件后忘记关闭

# 普通写法
file = open('verse.txt','a',encoding='utf-8')
file.write('明月几时有?\n')
file.close()

`

# 使用with关键字的写法
with open('verse.txt','a') as file:
#with open('文件地址','读写模式') as 变量名:
    #格式:冒号不能丢
    file.write('明月几时有?\n')
    #格式:对文件的操作要缩进
    #格式:无需用close()关闭![open函数]


这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9yZXNvdXJjZS5vc3MueWF0aWt1LmNvbS9wbGFuL3NoYXJlLzE1Nzg2NDAyMzI0NDMucG5n?x-oss-process=image/format,png)

with open('verse.txt','r',encoding='utf-8') as file:
    filedata = file.readlines()
    for i in filedata:
        print(i.replace('\n',''))#把文件中\n替换成空格

replace()方法有两个参数,第一个是将要被替换的字符,第二个是新字符,用来替换旧字符的

扫描二维码关注公众号,回复: 10033470 查看本文章
发布了5 篇原创文章 · 获赞 0 · 访问量 113

猜你喜欢

转载自blog.csdn.net/Roger_may/article/details/104896588