一.编码
分类 :
转换 :
案例 :
print('吴枫'.encode('utf-8'))
print('吴枫'.encode('gbk'))
print(b'\xe5\x90\xb4\xe6\x9e\xab'.decode('utf-8'))
print(b'\xce\xe2\xb7\xe3'.decode('gbk'))
运行结果 :
b'\xe5\x90\xb4\xe6\x9e\xab'
b'\xce\xe2\xb7\xe3'
吴枫
吴枫
将人类语言编码后得到的结果,有一个相同之处,就是最前面都有一个字母b,比如b'\xce\xe2\xb7\xe3',这代表它是bytes(字节)类型的数据。所谓的编码,其实本质就是把str(字符串)类型的数据,利用不同的编码表,转换成bytes(字节)类型的数据。
编码结果中除了标志性的字母b,你还会在编码结果中看到许多\x,你再观察一下这个例子:b'\xce\xe2\xb7\xe3'。
\x是分隔符,用来分隔一个字节和另一个字节。
分隔符还挺常见的,我们在上网的时候,不是会有网址嘛?你经常会看到网址里面有好多的%,它们也是分隔符,替换了Python中的\x。比如像下面这个:
https://www.baidu.com/s?wd=%E5%90%B4%E6%9E%AB
二.文件的读写
f1 = open('./1.txt','a',encoding='utf-8')
#以追加的方式打开一个文件,尽管并不存在这个文件,但这行代码已经创建了一个txt文件了
f1.write('难念的经')
#写入'难念的经'的字符串
f1.close()
#关闭文件
f2 = open('./1.txt','r',encoding='utf-8')
#以读的方式打开这个文件
content = f2.read()
#把读取到的内容放在变量content里面
print(content)
#打印变量content
f2.close()
#关闭文件
为了避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with,之前的例子可以写成这样:
# 普通写法
file1 = open('abc.txt','a')
file1.write('张无忌')
file1.close()
# 使用with关键字的写法
with open('abc.txt','a') as file1:
#with open('文件地址','读写模式') as 变量名:
#格式:冒号不能丢
file1.write('张无忌')
#格式:对文件的操作要缩进
#格式:无需用close()关闭
三.模块
每一个单独的py文件,本质上都是一个模块。
封装模块的目的也是为了把程序代码和数据存放起来以便再次利用。如果封装成类和函数,主要还是便于自己调用,但封装了模块,我们不仅能自己使用,文件的方式也很容易共享给其他人使用。
1.import
# 【文件:story.py】
sentence = '从前有座山,'
def mountain():
print('山里有座庙,')
class Temple:
sentence = '庙里有个老和尚,'
def reading(self):
print('在讲一个长长的故事。')
# 【文件:main.py】
import story
for i in range(10):
print(story.sentence)
story.mountain()
A = story.Temple()
print(A.sentence)
A.reading()
print()
import语句还有一种用法是import…as…。比如我们觉得import story太长,就可以用import story as s语句,意思是为“story”取个别名为“s”。
另外,当我们需要同时导入多个模块时,可以用逗号隔开。比如import a,b,c可以同时导入“a.py,b.py,c.py”三个文件。
2.from … import …
from … import …语句可以让你从模块中导入一个指定的部分到当前模块。
当我们需要从模块中同时导入多个指定内容,也可以用逗号隔开,写成from xx模块 import a,b,c的形式。
当我们需要从模块中指定所有内容直接使用时,可以写成【from xx模块 import 】的形式,代表“模块中所有的变量、函数、类”
3.if name == 'main'
4.内置模块
查看模块中有什么 : dir()
import csv
# dir()函数会得到一个列表,用for循环一行行打印列表比较直观
for i in dir(csv):
print(i)
安装内置模块 :
先安装myqr模块,Windows终端里运行'pip install myqr',Mac终端运行'pip3 install myqr'
中文学习官网 : https://yiyibooks.cn/xx/python_352/library/index.html