Python的第十天
一、maclinux 默认系统编码是Utf-8
windows中国版,默认系统编码是gbk
二、gbk 转成 utf-8 两种方法
1、直接转成unicode
# -*- encoding:gbk -*-
s = "路飞"
print(s)
py3内存里所有字符都是unicode,unicode是万国码
py3文件默认编码都是utf-8
py2内存里所有字符都是ascii码
2、转成utf-8
>>> s = "路飞"
>>> s.encode("gbk")
b'xc2xb7xb7xc9'
>>> s_gbk = s.encode("gbk")
>>> s_gbk.decode("gbk")
'路飞'
>>> s_gbk.decode("gbk").encode("utf-8")
b'xe8xb7xafxe9xa3x9e'
三、用Python操作文件3种模式
1、文件打开模式
r 只读模式 f=open(filename)-----打开文件
w 创建模式,若文件已存在,则覆盖旧文件 f.write("")--------写操作
a 追加模式,新数据会写到文件末尾 f.read()---------读操作
f.close()--------保存并关闭
2、write 创建模式
f = open("name_list",mode="w")
f.write("alex ")
f.write("liang ")
f.write("wang ")
f.write("li ")
f.close()
3、read 只读模式
f = open("name_list",mode="r")
print(f.readline()) # 读一行内容
print('------------')
print(f.read()) # 读出所有内容
4、append 追加模式
f = open("name_list",mode="a")
f.write("hahaha ")
f.write("jack ")
f.close()
四、遍历文件-人物联系方式
问题:'gbk' codec can't decode byte 0x80 in position 53: illegal multibyte sequence
解决:f = open("file name",encoding="utf-8",mode="r")
打印出身高>=170 and 体重<=50的人物
f = open("人物联系方式",encoding="utf-8",mode="r")
for line in f:
# print(line,end="") #删除空行
line = line.split() #把一行分成字符
# print(line)
height = int(line[2])
weight = int(line[3])
if height >= 170 and weight <= 50:
print(line)