版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33248299/article/details/82845964
一.文本文件编码格式
- 文本文件存储的内容是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等
Python 2.x默认使用ASCII编码
Python 3.x默认使用UTF-8编码
1.ASCII编码
- 计算机中只有256个ASCII字符
- 一个ASCII在内存中占用1个字节的空间
- 8个0/1排列组合方式一共有256种,也就是2**8
2.UTF-8编码格式
- 计算机中使用1-6字节来表示一个UTF-8字符,涵盖了地球上几乎所有地区的文字
- 大多数汉字会使用3个字节表示
- UTF-8是UNICODE编码的一种编码格式
- 如果你要读取的文本文件不是UNICODE编码的,那么就要这样操作了
f=open('文件路径','rb')
f_read=f.read()
f_read_decode=f_read.decode('该文件的编码方式')
print(f_read_decode)
二.Python 2.x中如何使用中文
在Python 2.x文件的第一行增加以下代码,解释器会以UTF-8编码来处理python文件
# *-* coding:utf-8 *-*
也可以使用
# coding=utf-8
三.Python 2.x处理字符串
- Unicode字符串
- 在Python 2.x 中,即使指定了文件使用UTF-8的编码格式,但是在遍历字符串时,仍然会以字节为单位遍历字符串
- 要能够正确的遍历字符串,在定义字符串时,需要在字符串的引号前,增加一个小写字母u,告诉解释器这是一个unicode字符串(使用UTF-8编码格式的字符串)
四.eval函数
- eval()函数十分强大–将字符串当成有效的表达式来求值并返回计算结果
#基本数学计算
input_str = input("请输入算术题:")
print(eval(input_str))
#字符串重复
print(eval("'*'*10"))
#将字符串转换成列表
print(type(eval("[1,2,3,4,5]")))
#将字符串转换成字典
print(type(eval("{'name':'小明','age':18}")))
/*
请输入算术题:1+1
2
**********
<class 'list'>
<class 'dict'>
*/
- 不要滥用eval
- 在开发时千万不要使用eval直接转换input的结果
__import__('os').system('ls')
- 等价代码
import os
os.system("终端命令")
- 执行成功,返回0
- 执行失败,返回错误信息