Python

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)


 

  

原文地址:https://www.cnblogs.com/sxy2021/p/14346841.html