编码和文件读写

266 阅读4分钟

编码和文件读写

1. 编码

1.1 二进制

编码的本质就是让只认识0和1的计算机,能够理解我们人类使用的语言符号,并且将数据转换为二进制进行存储和传输。

用来存放一位0或1,就是计算机里最小的存储单位,叫做【位】,也叫【比特】(bit)。我们规定8个比特构成一个【字节】(byte),这是计算机里最常用的单位。

bit是最小的存储单位
1byte=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB

1.2 编码表

编码表:ASCII码,GBK码,Unicode码,UTF-8码;Unicode是内存编码的规范,而UTF-8是如何保存和传输Unicode的手段

1.3 encode()和decode()

用法:

| '你想编码的内容'.encode('你使用的编码表') | '你想解码的内容'.decode('你使用的编码表')

encode

print('明天'.encode('utf-8'))
print('明天'.encode('gbk'))
print(b'\xe6\x98\x8e\xe5\xa4\xa9'.decode('utf-8'))
print(b'\xc3\xf7\xcc\xec'.decode('gbk'))
print(type('明天'))
print(type(b'\xce\xe2\xb7\xe3'))

输出结果:
#->  b'\xe6\x98\x8e\xe5\xa4\xa9'
#->  b'\xc3\xf7\xcc\xec'
#->  明天
#->  明天
#->  <class 'str'>
#->  <class 'bytes'>

b'\xce\xe2\xb7\xe3',字母b代表的是字节,\x是分隔符

所谓的编码,其实本质就是把str(字符串)类型的数据,利用不同的编码表,转换成bytes(字节)类型的数据

decode():

print(b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode('utf-8'))
#->  我爱你

2. 文件读写

文件读写,是Python代码调用电脑文件的主要功能,能被用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西

2.1 读取文件

打开文件——读文件——关闭文件

file1 = open('F:/python/fengbian/wenjian/duqu/test/abc.txt','r',encoding='utf-8') 
filecontent = file1.read()
print(filecontent)
file1.close()

# abc.txt里面的内容如下:
#->  今天天气真好
#->  天冷了,多加衣服哦

2.2 写文件

打开文件——写文件——关闭文件

f = open('./1.txt', 'w',encoding='utf-8') 
f.write('难念的经\n')
f.close()

f2 = open('./1.txt','r',encoding='utf-8')

w = f2.read()
print(w)
f2.close()
#->  难念的经

2.3 关键字with

关键字with,无需用close()关闭 用法:with open('abc.txt','a') as file1:

# 普通写法
file1 = open('abc.txt','a')
file1.write('张无忌')
file1.close()

# 使用with关键字的写法
with open('abc.txt','a') as file1:
#with open('文件地址','读写模式') as 变量名:
    #格式:冒号不能丢
    file1.write('张无忌')
    #格式:对文件的操作要缩进
    #格式:无需用close()关闭

2.4 open()函数

r 打开只读文件,该文件必须存在; r+ 打开可读写的文件,该文件必须存在。 rb+ 读写打开一个二进制文件,只允许读写数据。 rt+ 读写打开一个文本文件,允许读和写。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 wb 只写打开或新建一个二进制文件;只允许写数据。 wb+ 读写打开或建立一个二进制文件,允许读和写。 wt+ 读写打开或着建立一个文本文件;允许读写。 at+ 读写打开一个文本文件,允许读或在文本末追加数据。 ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

2.5 split() 函数

把字符串分割,按空格把字符串里面的内容分开 用法:列表名(字符串).split(分隔符),以列表或字符串形式返回,分隔符不填的情况下默认是空格

2.6 join()函数

把字符串合并 用法:str.join(sequence),str代表在这些字符串之中,你要用什么字符串连接,空字符串、横杠等,sequence代表数据序列(列表,字符串等)。