Differences between revisions 25 and 39 (spanning 14 versions)
Revision 25 as of 2008-04-29 04:18:01
Size: 12005
Editor: ZoomQuiet
Comment:
Revision 39 as of 2009-12-25 07:15:33
Size: 12791
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
#pragma section-numbers on #acl WoodpeckerAdminGroup:read,write,delete,revert LovPyBookGroup:read,write,delete,revert All:
#pragma section-numbers off
Line 6: Line 7:
[[TableOfContents]] <<TableOfContents>>

##startInc
Line 32: Line 34:
attachment:badcdc-chinese.png 图 CDay-1-1 mymusic-1.cdc内容
{{attachment:cday-1-mymusic-content.png}}
Line 57: Line 60:
attachment:coding.png

 * 有行者给出如上[http://mindmap.fltrp.com/mind-1.htm 思维图谱(Mind Map)]

图 CDay-1-2 编码思维图谱
{{
attachment:cday-1-encode.png}}

 * 有行者给出如上[[http://mindmap.fltrp.com/mind-1.htm|思维图谱(Mind Map)]]
Line 61: Line 66:
attachment:ipy-try-walk.png
图 CDay-1-3 本地文件目录测试结果
{{attachment:cday-1-test-local-file.png}}
Line 63: Line 71:
attachment:ipy-try-trans-utf8.png
图 CDay-1-4 另一些测试结果(使用unicode)
{{attachment:cday-1-test-unicode.png}}
Line 65: Line 76:
文本 ==decode()--> [unicode] ==>encode()--> utf-8文本 文本==>decode()--> [unicode] ==>encode()--> utf-8文本
Line 123: Line 134:
PCS112 异常
讲述了Python中异常的使用,即try ... except ...的使用等
Line 142: Line 155:
attachment:2008-04-29-112533_install-py-packet_scrot.png ##图 CDay-1-5 chardet安装示意
##attachment:cday-1-chardet-setup.png
Line 144: Line 159:
~$ ls -l
Line 150: Line 166:
::$ python setup.py
~
$ python setup.py
Line 157: Line 174:
::$ sudo python setup.py install
~
$ sudo python setup.py install
Line 209: Line 227:
$cat /etc/mtab ~$ cat /etc/mtab
Line 216: Line 234:
}}} 观察默认的挂接光盘的行为和挂接 dos 和 windows 分区的情况,感觉是默认的挂接行为没有使用编码处理 }}} 观察默认的挂接光盘的行为和挂接 Dos 和 Windows 分区的情况,感觉是默认的挂接行为没有使用编码处理
Line 220: Line 238:
$ sudo mount -o ro,norock,iocharset=cp936 /dev/scd0 /media/cdrom0 ~$ sudo mount -o ro,norock,iocharset=cp936 /dev/scd0 /media/cdrom0
Line 222: Line 240:
$ sudo mount -o ro,norock,iocharset=utf8 /dev/scd0 /media/cdrom0 ~$ sudo mount -o ro,norock,iocharset=utf8 /dev/scd0 /media/cdrom0
Line 236: Line 254:
http://wiki.woodpecker.org.cn/moin/HackerHowto http://wiki.woodpecker.org.cn/moin/HackerHowto(精巧地址:http://bit.ly/31rUuY)
Line 239: Line 257:
http://en.wikipedia.org/wiki/Cracker http://en.wikipedia.org/wiki/Cracker(精巧地址:http://bit.ly/3Xx0A)
Line 243: Line 261:
这个名词是骇客(Hacker)在1985年为对抗新闻媒体滥用hacker而提出的。 这个名词是骇客(Cracker)在1985年为对抗新闻媒体滥用hacker而提出的。
Line 260: Line 278:
{{{详细::
PCS107 字串格式化
进一步介绍了这里用来快速重构 光盘信息文本格式的
Python 内置的字符模板支持特性;
}}}
Line 270: Line 293:
 * `d`代表目录;`f`代表文件  * `d`代表目录;`f`代表文件,他们分别是directory(目录)和file(文件)的缩写
Line 273: Line 297:
attachment:PyDay-1_think_road.png
图 CDay-1-6 CDay-1问题解决思路图谱
{{attachment:cday-1-mind.png}}
Line 289: Line 316:
 * 如果你使用M$ 系统,运气好的话,是不会见到笔者列出的现象的,但是不保证以后遇不到自动处理下搞不的光盘内容;希望那时候小白真的有个自由环境可以尝试其它方案 ;)  * 如果你使用M$ 系统,运气好的话,是不会见到笔者列出的现象的,但是不保证以后遇不到自动处理下搞不的光盘内容;希望那时候小白真的有个自由环境可以尝试其它方案 ;)
Line 301: Line 328:
1. 自动判定你自个儿或是朋友的Blog 是什么编码的? 1. 自动判定你自个儿或是朋友的Blog 是什么编码的?
Line 305: Line 332:
##endInc
Line 308: Line 335:
::-- ZoomQuiet [[[DateTime(2007-02-24T09:24:27Z)]]]
[[PageComment2]]
::-- ZoomQuiet [<<DateTime(2007-02-24T09:24:27Z)>>]
<<PageComment2>>

status

校对

ZoomQuiet;100%

CDay -1 实用化,中文!

~ 中文处理完成功能的实用化

你能够碰到的问题,99%的情况下其它人已经遇到过了,所以,最佳的解决方式就是找到那段别人解决相似问题的代码!

回顾需求

小白已经实现的需求已经到达这般了:

  1. 可以扫描光盘内容并存储为硬盘上的文本文件
    • 存储成*.cdc 的文本文件
    • 可以快速指定保存目录
    • 可以快速指定保存的文件名
  2. 可以根据储存到硬盘上的光盘信息进行搜索
    • 可以搜索指定目录中所有*.cdc文件
    • 可以指定关键字进行搜索
      • 列出所有含有关键字的信息行

进一步

回想起来一直尝试搜索的都是E文关键字,中文的没有试过;

尝试来几下! ... 呜乎矣哉,什么也查不出来!

查阅记录文本

图 CDay-1-1 mymusic-1.cdc内容 cday-1-mymusic-content.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列表,子目录名,如果没有就为空
    +- 当前目录
  • 瞧着格式象,为什么到中文的地方就是问号呢?

中文!永远的痛

不问不知道,一把辛酸泪哪...

  • 在网络中一搜索才知道,只要是个中国人,不论整什么开发,中文!永远会遇到各种问题的
  • 幸好比小白勤劳的人海了去,有关中文的Python 处理也是一搜一大堆
  • 但是!有时候,选择太多也是个问题;-)

编码问题

图 CDay-1-2 编码思维图谱 cday-1-encode.png

  • 有行者给出如上思维图谱(Mind Map)

  • 理解过程中,先使用已知的方式测试本地硬盘文件目录情况

图 CDay-1-3 本地文件目录测试结果 cday-1-test-local-file.png

  • 嗯嗯嗯,看着就不同,根据理解继续尝试是否理解

图 CDay-1-4 另一些测试结果(使用unicode) cday-1-test-unicode.png

{{{ unicode(原始文本, 'utf8' ).encode('utf8') 文本==>decode()--> [unicode] ==>encode()--> utf-8文本

  • ^ | | | | +- 最终的渴求 | | | +- 是为编码过程;可以从unicode 输出为任意编码 | | +- Python 内置支持的unicode 格式数据 | +- 是为解码过程,将已知编码的文本编译成宇宙通用的unicode数据 +- 原始文本信息,是什么编码你得知道!

}}}

  • 也就是说文件没有编码之说,大家其实都是二进制格式保存在硬盘中的,仅仅是在写入读取时需要使用对应的编码进行处理,以便操作系统配合相关软件/字体绘制到屏幕中给人看
    • 所以,关键问题是得知道原先这些字串数据是使用什么编码来编译的!
    • 但是,在Unicode 之前,都是使用类似对照表的形式来组织编码的,无法从串数据流本身中统一解出不同的文字来,
    • 只有猜!

ObpLovelyPython/CDay-1 (last edited 2012-03-03 10:28:10 by ZoomQuiet)