Size: 9460
Comment:
|
Size: 10588
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from ObpLovelyPython/PyDay-1 | |
Line 4: | Line 3: |
||'''status'''|| 完成 ;ZoomQuiet;95%,补充习题 || | ||'''status'''|| 完成 || ZoomQuiet;97%,完成PCS 嵌入等待补充习题 || |
Line 9: | Line 8: |
= -1 PyDay 实用化,中文! = | = CDay -1 实用化,中文! = |
Line 50: | Line 49: |
* 列表什么的一搜索才知道,只要是个中国人,不论整什么开发,中文!永远有问题的 | * 在网络中一搜索才知道,只要是个中国人,不论整什么开发,中文!永远有问题的 |
Line 56: | Line 55: |
Line 117: | Line 117: |
{{{详细:: PCS6 Python与中文 进一步全面的阐述了在Python 中面对中文数据时的思路和技巧... }}} |
|
Line 130: | Line 135: |
{{{详细:: PCS202 chardet 进一步说明了此外部模块的信息, 并分享了使用体验; }}} |
|
Line 147: | Line 158: |
* 经过测试在各种情况下都可以正确识别! * 但是怎么尝试已经保存下来的 .cdc 文本依然是 `ASCII` 码! |
经过测试在各种情况下都可以正确识别! 但是怎么尝试已经保存下来的 .cdc 文本依然是 `ASCII` 码! |
Line 184: | Line 197: |
{{{警告:: Hacker~黑客 绝然不是中国媒体中宣传的那些攻击他人电脑的家伙, 黑客是些创造技术奇迹的单纯的人们: http://wiki.woodpecker.org.cn/moin/HackerHowto 被翻译所误指的是 骇客~Cracker http://en.wikipedia.org/wiki/Cracker 破坏者 未经授权而企图进入电脑系统者。这种入侵者通常是恶意进入他人的系统, 而且有许多技巧可以破坏他人的系统。 这个名词是骇客(Hacker)在1985年为对抗新闻媒体滥用hacker而提出的。 1981-1982年前曾有人推动使用毛虫代表与cracker一样的意义,但并未成功。 }}} |
|
Line 218: | Line 245: |
相对Python 方面,仅仅有一对内置函式,和一个外部模块包使用的体验 | 相对Python 方面,仅仅追加了一对内置函式,和一个外部模块包使用的体验 |
Line 229: | Line 256: |
{{{警告:: 事实上有在Windows 下面的完全Unix环境 Cygwin http://www.cygwin.com 是一个运行于Windows下的免费的UNIX的子系统,使用一个Dll(动态链接库)来实现的虚拟机, 可以直接在 Windows 环境中使用各种Unix 实用工具; }}} |
|
Line 234: | Line 269: |
status |
完成 |
ZoomQuiet;97%,完成PCS 嵌入等待补充习题 |
1. CDay -1 实用化,中文!
你能够碰到的问题,99%的情况下其它人已经遇到过了,所以,最佳的解决方式就是找到那段别人解决相似问题的代码!
1.1. 回顾需求
小白已经实现的需求已经到达这般了:
- 可以扫描光盘内容并存储为硬盘上的文本文件
- 存储成*.cdc 的文本文件
- 可以快速指定保存目录
- 可以快速指定保存的文件名
- 可以根据储存到硬盘上的光盘信息进行搜索
- 可以搜索指定目录中所有*.cdc文件
- 可以指定关键字进行搜索
- 列出所有含有关键字的信息行
1.1.1. 进一步
回想起来一直尝试搜索的都是E文关键字,中文的没有试过;
来几下! ... 呜乎矣哉,什么也查不出来!
1.2. 查阅记录文本
attachment:badcdc-chinese.png
这种数据对嘛?
- 当初为了简单使用文档中的基本型:{{{#'cdctools.py' 中 cdWalker(cdrom,cdcfile) 的动作
...
- for root, dirs, files in os.walk(cdrom):
- export+="\n %s;%s;%s" % (root,dirs,files)
... }}}就是使用 os.walk() 的天然输出组织成每一行:
/media/cdrom0/EVA/Death-Rebirth;[];['eva8-01.Mp3', 'eva8-02.Mp3',...] ^ ^ ^ ^ | | | +- files列表,此目录的文件名 | | +- 各个数据段使用";" 分隔 | +- dirs列表,子目录名,如果没有就为空 +- 当前目录
- 瞧着格式象,为什么到中文的地方就是问号呢?
1.3. 中文!永远的痛
不问不知道,一把辛酸泪哪...
- 在网络中一搜索才知道,只要是个中国人,不论整什么开发,中文!永远有问题的
- 幸好比小白勤劳的人海了去,有关中文的Python 处理也是一搜一大堆
但是!有时候,选择太多也是个问题;-)
1.3.1. 编码问题
attachment:coding.png
有行者给出如上[http://mindmap.fltrp.com/mind-1.htm 思维图谱(Mind Map)]
- 理解过程中,先使用已知的方式测试本地硬盘文件目录情况
attachment:ipy-try-walk.png
- 嗯嗯嗯,看着就不同,根据理解继续尝试是否理解
attachment:ipy-try-trans-utf8.png {{{ unicode(原始文本, 'utf8' ).encode('utf8') 文本 ==decode()--> [unicode] ==>encode()--> utf-8文本
^ | | | | +- 最终的渴求 | | | +- 是为编码过程;可以从unicode 输出为任意编码 | | +- Python 内置支持的unicode 格式数据 | +- 是为解码过程,将已知编码的文本编译成宇宙通用的unicode数据 +- 原始文本信息,是什么编码你得知道!
}}}
- 也就是说文件没有编码之说,大家其实都是二进制格式保存在硬盘中的,仅仅是在写入读取时需要使用对应的编码进行处理,以便操作系统配合相关软件/字体绘制到屏幕中给人看
- 所以,关键问题是得知道原先这些字串数据是使用什么编码来编译的!
- 但是,在Unicode 之前,都是使用类似对照表的形式来组织编码的,无法从串数据流本身中统一解出不同的文字来,
- 只有猜!