[python IO学习篇]补充打开中文路径的文件
http://blog.csdn.net/mottolinux/article/details/52560062
1 关于Python编码的基本常识 在python里面 “明文”是unicode类型和str , “密文”是其他的编码格式 如gbk utf- latin-1等等
编码: “明文”->”密文” .encode([目标编码格式]) 对象必须为unicode类型
解码: “密文”->”明文” .decode([源编码格式]) 对象为str类型
对于汉字 一共有三大类编码方式
以中文汉字”李”为例子
a. unicode类 机器码 \x67\x4e
unicode(python表示) \u674e
HTML Entity 李
UTF-(BE) 0x674E
UTF-(BE) 0x0000674E
b. UTF-8类 机器码 \xe6\x9d\x8e
UTF-(python表示) \xe6\x9d\x8e
URL Escape Code %E6%9D%8E
Octal Escape Sequence \\\
c. gb类 机器码 \xc0\xee
gb2312 gbk gb18030 \xc0\xee
设置 .py文件上的中文编码格式
()py文件内容上出现字符串上的中文
()包括前面带u的(转换成unicode格式的字符串) 首先也是根据设置的文件编码格式读取字符串文字量 再作unicode的转换
()如果添加了#coding=utf-,则将中文按utf-8转成unicode
()如果没有添加#coding=utf-,则按系统默认的编码格式
()系统的默认编码,获取代码:
sys.getdefaultencoding()
如何设置.py文件的编码格式:
()#coding=<encoding>
()<encoding>根据编辑器不同而不同
sublime 编辑器默认是utf-
win7自带的操作系统:asciii /gbk--要读取中文,要gbk
可以另存为:utf-
win7文件名是中文或者文件夹是中文
()都是gbk编码
()读写文件时,必须open(.....encode('gbk'),'r')
win7文件上的内容包含中文
()和4的不一样
()文件的内容要根据编码的格式(记事本可能另存为)
()建议编码成utf-,sublime打开不需要转换
爬虫结果的存储
()现在的网页基本都是UTF-8编码(HTML5默认编码)
()经过BeautifulSoup处理后的HTML元素内容 类型为NavigableString
()可以直接print 由第3点可推断出 NavigableString底层类型为unicode
()经过.replace()方法后可转换为unicode类型
不提倡
()不使用sys.setdefaultencoding(‘utf-’)解决编码问题
其他
()字符串中间处理过程全部转化为unicode处理 只在数据的入口和出口作相应的.decode()和.encode()处理
[python IO学习篇]补充打开中文路径的文件的更多相关文章
- [python IO学习篇] 补充.py文件是中文, .ini文件内容是中文
python 代码文件的编码.py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character.需要在代 ...
- [python IO学习篇] 补充中文编码
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820066616a7 ...
- [python IO学习篇] [打开包含中文路径的文件]
https://my.oschina.net/mcyang000/blog/289460 打开路径含有中文的文件时,要注意: 1 在windows对文件名编码是采用gbk等进行编码保存,所以要将文 ...
- Java NIO 学习笔记(五)----路径、文件和管道 Path/Files/Pipe
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- python 兼容中文路径 + 目标文件是否是图像格式判断
1. 中文路径兼容python程序如果路径中包含中文字符,不加处理会有类似报错:'ascii' codec can't decode byte 0xxx in position xx:ordinal ...
- Python基础学习笔记---5.输入\输出 I\O文件操作目录
在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,你也可以使用多种 ...
- cad.net 利用win32api实现不重复打开dwg路径的文件夹(资源管理器)
这里地址的方法也是可用的,但是net3.5不能使用 为此我选择使用win32api的方式来遍历当前桌面所有资源管理器 /// <summary> /// 不重复打开dwg路径的资源管理器 ...
- Qt、Vc下用fopen打开中文名字的文件(转换成Unicode后,使用_wfopen函数)
在做一个Qt项目的时候,完成上传文件时,通过fopen打开文件用来读时发现fopen不能打开中文的文件名,自己在网查找一下,解决方法如下 参考:http://weidaohang.org/wanglu ...
- [python][django学习篇][3]创建django web的数据库模型
推荐学习博客:http://pythonzh.cn/post/8/ 博客或者web界面向用户展示内容,它需要从某个地方获取博客内容或者web界面内容,才能够展示出来.通常来说:某个地方指的就是数据库 ...
随机推荐
- windows自定义快速启动(运行)命令
自定义运行(windows键+R)里面命令,启动设置的程序,如图: 它的设置方法有两种: 第一种设置方法: 第1步:在任意地方创建一个文件夹(建议在D盘根目录创建),文件夹的名称可自定义没有特殊限制, ...
- python_87_shelve模块
'shelve模块是一个简单的key,value将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式(只支持pickle)' #序列化,将数据写入文件 import ...
- mysql中的空值问题
MySQL的查询如果需要用到空值的情况下,where后面的条件就需要注意了 MySQL中的表示空值的方法:is null 和 is not null 比如:select * from user whe ...
- python之道13
看代码分析结果 func_list = [] for i in range(10): func_list.append(lambda :i) v1 = func_list[0]() v2 = func ...
- c#中的自定义泛型类、泛型方法和泛型接口
泛型的产生其中一个原因就是为了解决原来集合类中元素的装箱和拆箱问题: 一.泛型类: /// <summary> /// 返回前台的消息 /// </summary> ...
- 修改Windows默认调试器
程序崩溃时,系统会弹窗让你选择是否进行调试,可以设置系统默认调试器. 注册表位置: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVe ...
- 计算机应用第三次作业:自动开机自动关机 常用DOS命令 关于文件文件夹
一.自动开机 台式机启动时按住DEL键 进入一个蓝色的界面,界面上是英文提示 这个界面是BIOS ,是在机器的ROM中存储 二.自动关机 自动重启 方法一在120秒钟后自动关机 win+r (RUN ...
- 使用lua做序列化和反序列化
-- lua对象序列化 function serialize(obj) local lua = "" local t = type(obj) if t == "numbe ...
- VB6 代码编辑页面添加支持滚轮模式
VB6 中的代码编辑页面默认是不支持滚轮模式的,这让在编辑代码时的体验很是不爽. 但在64位win10系统进行加载配置时,可能会出现问题,可用如下方法解决: http://download.micro ...
- MySQL 如何将Id相同的字段合并,并且以逗号隔开
数据库存的数据 sql: SELECT Id,GROUP_CONCAT(`Name` SEPARATOR ',') NAMES FROM `stu` GROUP BY Id;