URN Logo
UNIX Resources » Linux » China Linux Forum » Python 编 程 » 11 » Python库函数的翻译计划,~希望看到的人都来参与~
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
Python库函数的翻译计划,~希望看到的人都来参与~
 
 
 
 
 
 
 
 
 
 
 
 
 
2.3.1 Truth Value Testing - canuo [2005-03-26 20:05 | 475 byte(s)]
 
2.3.7 Set Types - canuo [2005-03-26 19:37 | 2,168 byte(s)]
 
6.1 os -- Miscellaneous operating system interface - canuo [2005-03-24 19:24 | 1,926 byte(s)]
 
 
 
6.11 time -- Time access and conversions - canuo [2005-03-22 23:55 | 11,354 byte(s)]
 
3.1 sys -- System-specific parameters and function - canuo [2005-03-22 23:51 | 16,138 byte(s)]
 
Subject: 3.1 sys -- System-specific parameters and function
Author: canuo    Posted: 2005-03-22 23:51    Length: 16,138 byte(s)
[Original] [Print] [Top]
这个模块提供了一些能被解释起支持使用的变量和一些函数,这些函数与解释器能很好的结合,他们都是有用的。

1:argv
传递给python脚本的命令行参数列表,argv[0]是脚本的名字(他是平台独立的,不管他是一个路径全名或不是),如果使用了 -c 参数选项,argv[0]会被设置为字符串'-c',如果没有脚本名传递给python解释器,argv[0]的长度为0。

2:byteorder
本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little',我猜大概意思是值,有的系统读取字节的时候从高位读,有的从低位开始读,所以就出现了这个变量。

3:builtin_module_names
一个字符串的元组,这些字符串代表着所有被编译进解释器的模块的名字(这些信息通过别的途径是不能得到的,--modules.keys()只会得到所有导入的模块的名字的列表而已)

4:copyright
不用解释了吧,但他也是个量,里面记录着一些版权相关的冬冬

5:dllhandle
一个整数能代表python对于windows平台的DLL的操纵==不懂。。==

6:displayhook(value)
如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._,先开始有点不懂,后来看到'_'就明白了,他是指在python的交互式解释器里,'_'代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来,和~~,原来他不但是内置的,而且他的真正位置原来是sys模块的,和~~

7:excepthook(type,value,traceback)
这也是个钩子,用来钩出当出现错误时,代表错误的三个属性。即:错误的类,错误的实体对象和trackback对象,比如说:
>>> 1/0
Traceback (most recent call last):
File "<pyshell#0>", line 1, in -toplevel-
1/0
ZeroDivisionError: integer division or modulo by zero
还有在一段交互式的代码段里,他会在下一个提示符输出前发生,而在一个python程序里,他会在程序结束的时候发生,较高级别的错误处理(即如果自己需要)可以通过自己构造一个象这样的三参数函数来处理。

8:__displayhook__;;__excepthook__
这些对象包涵了在程序开始的时候displayhook,excepthook的原始值,他们的存在是以便当程序出错后能够重现错误的详细信息,==大概是为了存储错误信息而设立的变量吧,==
>>> print sys.__displayhook__
<built-in function displayhook> 看来他是内置函数

9:exc_info()
收集了当前指向的错误的错误信息,三个值的元组,返回的信息是当前线程和当前堆栈帧的细节,如果当前堆栈帧没错误,那回正在被调用的堆栈帧的信息,也就是说他的调用会一直持续到他发现错误为止。
如果至尾都没发现错误,返回的元组的三个值==None,(type,value,traceback)
如果exc_clear()被调用了,exc是exception,他会返回三个None,直到当前线程的另外一个错误产生了,或者the execution stack returns to a frame where another exception is being handled. ==不懂这句==
这里还有个warning:通过函数将traceback的返回值赋给本地的一个变量想操纵错误信息会引起递归调用,==大概是无限的吧==,这会阻止这个函数调用其他的变量,或者会阻止垃圾收集器收集垃圾,==这样内存大概不能得到释放吧==,所以这里有个建议:因为大多数函数都不会用到traceback,所以最好的办法是使用那些想exctype,value = sys.exc.info()[:2]来导出前两个信息,如果确实需要用到traceback,那么你最好在使用过后删除他(最好是用:try...finally),或者调用exc_info()的时候不用这个函数来操作exception。
这里还有个NOTE:从2.2版开始,象这些无限循环会自动被垃圾收集器回收的,所以你所调用的这样得到函数会得不到你想要的那些功能,但能避免则避免之最好·~

10:exc_clear()
这个函数是用来清除当前线程所出现的当前的或最近的错误信息的,调用后exception的三个信息当然是None了,但当调用过后再出现错误,他就管不到了,
这个函数通常使用的很少,这些很少的情况自己感兴趣可以看看

11:exc_type;;exc_value;;exc_traceback
这三个就是上面提到的那三个错误信息的参数了,需要注意的是,因为他们是全局变量,所以他们不是专门属于哪个线程的,在多线程的程序里要注意 安全 拉。。如果没有如何错误被操纵,exc_type是None,其他两个没有定义

12:exec_prefix
是一个字符串,内容是平台独立的python文件安装的位置,默认的是'/usr/local'==大概是对linux系统而言的吧==,他可以在安装python的时候设置,configure脚本里添上--exec-prefix参数,具体点,所有的configuration文件(如:pyconfig.h头文件)都在这个目录下:exec_prefix + '/lib/pythonversion/config',而共享库模块在:exec_prefix + '/lib/pythonversion/lib-dynload'下,此处的version等同于version[:3]

13:executable
一个字符串,给出可以供python解释器执行的二进制文件的名字,二进制代码在哪个系统中都是可执行的,

14:exit([arg])
从python中退出,其实就是丢出SystemExit错误,然后清除一切,不过try...finally块里的finally还是要执行,然后才退出,所以在这个块里可以截获exit,===这里我不知道在finally块里截获还是在外层的块里就可以截获====可选参数arg可以是整数,标志exit的状态(默认的是0),也可以是其他对象,如果是整数0表示正常中止,如果是非0的,表示异常中止,大部分系统要求他的值在0-127之间,如果是没定义的冬冬,将会导致其他的结果,有些系统有不同的方式去定义exit命令,但是这些都是不怎么流行的,也就是不被人使用的;Unix程序一般使用2表示命令行语法错误,1表示所有的其他错误。。如果其他类型的对象作为arg。None等同于0,其他的会在标准输出终端(sys.stderr)输出,并且exit的arg置为1,特别的,当一个error产生时,sys.exit("错误信息")是一个快速退出程序的方法。

15:exitfunc
这个值没有被sys模块确切的定义,但是可以被你自己或者由一个程序设定,用来在程序退出的时候作一些收尾动作,当设置的时候要注意,他必须是一个无参函数,这个函数将在结束解释器的时候调用,而且也只能有一个这样的函数,如果想要引用多个函数,最好使用anexit模块,不然会中止不给执行。
注意:这个函数只有在程序退出的时候,或者python解释器产生了一个致命的内部错误,再或者当os.exit()被调用的时候才被执行。

16:getcheckinterval
返回由 setcheckinterval()设置的值,看下面的set..

17:getdefaultencoding()
返回当前你所用的默认的字符编码格式,
>>> sys.getdefaultencoding()
'ascii' 我默认用的是ascii

18:getdlopenflags()
对unix有用,返回调用dlopen()得到的当前flags值,flag常量在dl和DLFCN模块中有定义,

19:getfilesystemencoding()
>>> sys.getfilesystemencoding()
'mbcs' #windowsxpsp2+得系统
返回将Unicode文件名转换成系统文件名的编码的名字,值取决于系统,如果你的系统用的是Unicode,他的值是None,下面有介绍::
On Windows 9x, the encoding is ``mbcs''.
On Mac OS X, the encoding is ``utf-8''.
On Unix, the encoding is the user's preference according to the result
of nl_langinfo(CODESET), or None if the nl_langinfo(CODESET) failed.
On Windows NT+, file names are Unicode natively, so no conversion is performed.
getfilesystemencoding still returns ``mbcs'', as this is the
encoding that applications should use when they explicitly want
to convert Unicode strings to byte strings that are equivalent when used as file names.

20:_getframe([depth])
通过这个函数可以得到一个depth深度的堆栈(已经存在的)的引用,如果depth大于这个堆栈的深度,那么抛出ValueError,depth默认是0,返回这个帧的顶层指针,===我猜的,大概应该也许可能是这样吧====

21:getwindowsversion()
顾名思义吧
>>> sys.getwindowsversion()
(5, 1, 2600, 2, 'Service Pack 1')#靠,竟然是sp1,我在上面还说我的是sp2+呢,大概我是通过
#sp1加补丁升级到sp2+相同的功能吧
这里有个列表:
VER_PLATFORM_WIN32s Win32s on Windows 3.1
VER_PLATFORM_WIN32_WINDOWS Windows 95/98/ME
VER_PLATFORM_WIN32_NT Windows NT/2000/XP
VER_PLATFORM_WIN32_CE Windows CE

22:hexversion
>>> sys.hexversion
33817025
这是我得到的结果,不知道干什么用的,16进制版本??是不是说版本用16进制数表示的啊?再来一个:
>>> hex(sys.hexversion)
'0x20401c1'

23:last_type;;last_value;;last_traceback
这三个怎么跑到这儿来了,干什么的??
这三个变量不总是存在的,当一个错误出现,在输出端也输出了却没有得到处理时他们就是那个错误的存储地了,他们最有可能用到的地方就是调试了,==你每天在IDLE里看到的红字错误就是调试了==,这里还介绍了一些东西我不知道了:
and engage in post-mortem debugging without having to re-execute the command that caused the error. (Typical use is "import pdb; pdb.pm()" to enter the post-mortem debugger; see chapter 9, ``The Python Debugger,'' for more information.)
>>> import pdb
>>> pdb.pm()
> <pyshell#11>(1)?()
(Pdb) dsf
*** NameError: name 'dsf' is not defined
(Pdb) x=0
(Pdb) x
0
(Pdb) 1/0
*** ZeroDivisionError: integer division or modulo by zero
有谁知道的说两句撒~~~如果想退出 ctl+D拉

24:maxint;;maxunicode
>>> sys.maxint
2147483647
>>> sys.maxunicode
65535
这里就不介绍了

25:modules
是个字典,里面是映射的是已经导入的模块的名字和他的路径,这个对重载模块有帮助,注意:从这个字典里移除模块不同于从相应模块对象里调用reload(),==也许翻译的不对==

26:path
一个链表,详细的描述了搜索模块的路径,被环境变量PYTHONPATH初始化,默认的增加一个独立的安装路径。
当程序开始进行初始化的时候,这个链表的第一项path[0],是包涵调用程序的解释器的脚本的文件路径,如果脚本路径不可用(如:解释器交互地调用,或者脚本从标准输入端读取),path[0]是一个空字符串,他告诉python首先在当前文件夹去寻找模块,需要注意的是脚本路径先入口路径插入PYTHONPATH==此处不懂==
任何程序可以随意修改这个链表以达到自己的目的,2.3有修改,Unicode字符串不再做忽略处理

27:platform
一个字符串标志表示系统平台的标志,例如:'sunos5','linux1',这个信息可以用来指导你该添加些特定平台的构件,

28:prefix
一个字符串给出特定平台下,python被安装的路径前缀,默认的是'/user/local',这个可以在安装python的时候加上 --prifix参数来配置脚本,python模块库的主收藏夹是 prefix+'/lib/pythonversion',而平台独立的头文件被存在 prefix+'include/pythonversion'这里的version等于version[:3]

29:ps1;;ps2
他们是字符串,一个是主提示符,一个是次提示符,这些只在解释器交互模式下才能起作用,他们的默认值是'>>>' and '...',但是在IDLE下好像不起作用,在xp的伪DOS下运行python会立即得到效果,总之通过他们可以修改提示符的显示

30:setcheckinterval(interval)
用来设置解释器的“检测时间间隔”,这个整数值决定了解释器检测周期性的事情如线程,信号等的频率,默认的是100,意思是指他会在每100个python虚拟指令周期进行检测,加大数值可能会加长程序使用线程的时间,设为<=0的数的话,他会在每个可用的指令周期进行检测

31:setdefaultencoding(name)
用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除

32:setdlopenflags(n)
设置flags(被dlopen( )调用),例如当解释器导入外部模块时。对于其他情况:调用sys.setdlopenflags(0),当导入模块时可以懒散的解析符号,==这里不懂,按字面翻译的===,调用sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)可以跨模块共享符号,这里的n可以从dl模块得到帮助,或者从DLFCN模块得到帮助,如果DLFCN不可用,他可以使用h2py脚本从/usr/include/dlfcn.h产生,对unix可用

33:setprofile(profilefunc)
设置系统的配置(不知道这里的profile function时什么意思,也许是模拟,大概是对系统函数的调用接口进行python化的转变吧)函数,通过他可以得到系统函数python式的源代码,系统的profile function的调用有点类似系统的跟踪函数(参考 settrace()),但是他不会调用可执行的行代码(只是调用然后返回结果,就算是已经设置了一个错误,他也会执行返回事件),这种函数是一个特殊的线程,但是不能把他当线程,因为你没办法控制他和别的线程之间联系,因此在使用多线程面前是没有意义的,另外,its return value is not used,因此他能简单的返回None,profile参考第10章

34:setrecursionlimit(limit)
设置解释器递归调用时最多可以使用的堆栈的深度,这样可以阻止那些无限递归导致溢出,这个limit值时平台独立的,如果一个程序需要深度递归并且平台也支持大值的limit时你可以将limit值设置大点,但需要注意的是,如果太大了的话,会导致系统资源占尽从而崩溃。

35:settrace(tracefunc)
设置系统的跟踪函数,他允许你在python里使用python源代码调试器,参考这章的9.2节关于python调试的'how it work',他也是个特殊的线程,支持多线程的调试器,但必须为每个要调试的线程使用settrace()注册,
注意:settrace()只用在调试器,profilers,coverage tools或者类似的方面,他的行为是属于运行的平台,而不是属于语言定义,所以他不一定对所有的python运行都可用。

36:settscdump(on_flag)
不知道。因为不能理解,VM是不是指虚拟内存?如果on_flag=ture,除去对虚拟内存大小的限制,如果时false,就不激活这些限制,这个函数只有当你在python在被编译时加上一个参数 --with-tsc才可用,想要了解这些限制的出处,请参考python源代码里的python/ceval.c

37:stdin;;stdout;;stderr
解释器的相应的标准输入,输出和错误流的文件对象,stdin用于解释器所有的输入除了脚本,但脚本可以使用input() and raw_input(),stdout用于输出打印和表达式结果的输出,也用于输出input(prompt),raw_input(prompt)中的prompt的输出,解释器自身的提示符和几乎所有的错误消息都要使用到stderr.stdout, 还有,stderr不需要被内置进文件对象:所有的对象只要有write(sting)方法,那么他们都是可以接收输入的,(所有这些对象的改变不会影响到os模块的os.popen(),os.system(),or exec*()或者类似的函数的标准输入输出流的处理)

38:__stdin__;;__stdout__;;__stderr__
这些对象包涵着程序开始时stdin,stdout,stderr的原始值(不知道初始值是不是更好?),他们在程序开始到程序启动好期间起作用,他们对文件的恢复有帮助,有些被破坏的文件覆盖了的已知的文件,就可以用实际文件去恢复他。

39:tracebacklimit
当这个变量被设为一个整数值,这个整数决定了如果一个没被处理的错误出现时,可以被打印输出的traceback信息的最大层数,默认值是1000,当被设为0或比0小的值,所有的traceback信息都被压制,只有错误信息的类型和值被打印输出。
>>> sys.tracebacklimit=0
>>> 1/0
Traceback (most recent call last):
** IDLE Internal Exception:
ZeroDivisionError: integer division or modulo by zero
>>> sys.tracebacklimit=5
>>> 1/0
Traceback (most recent call last):
File "<pyshell#5>", line 1, in -toplevel-
1/0
ZeroDivisionError: integer division or modulo by zero

40:version
'version (#build_number, build_date, build_time) [compiler]'
这个是我当前的python版本:
>>> sys.version
'2.4.1c1 (#63, Mar 10 2005, 10:36:41) [MSC v.1310 32 bit (Intel)]'.
这个是书册里的举的例子的python版本:
'1.5.2 (#0 Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)]'
比较一下就知道是干什么的了

41:api_version
解释器的C的API版本,这对于那些想调试在python和扩展模块之间的版本冲突的程序员有帮助

42:version_info
>>> sys.version_info
(2, 4, 1, 'candidate', 1)
这是我的2.4.1版本的信息,candidate是候选的意思,也有的是'final',表示最终,
对应的意思:主,次,微,版本级别,是否有后继的发行

43:warnoptions
这是警告框架的一个运行细节,不要改变他的值,参考warnings模块以得到更多关于warnings framework的信息

44:winver
在windows平台注册的python版本号,他的值通常是version字符集的前三个,在sys模块提供这个的目的是为了方便得到一些信息,改变这个值对被python使用的注册键值没有任何影响。。

最后::参考模块site:他描述了怎么使用.pth文件去扩展sys.path
----
我的BLOG:http://xshhe.blogchina.com
[Original] [Print] [Top]
Subject: Python库函数的翻译计划,~希望看到的人都来参与~
Author: canuo    Posted: 2005-03-22 23:55    Length: 1,398 byte(s)
[Original] [Print] [Top]
我有个想法,就是我们是否开个专栏,就是关于python库函数的翻译(E文档里的libray reference,Tutorial下面的那个),我觉得这块对大家的帮助非常大,所以运用分布式电脑的思想,我们何不也来个大家一起翻译的分布式翻译??
和~ 我数了一下,你可以看library reference最 底下的modle index,我数了一下,总共有260个模块,我们可以一人一个模块去翻译啊,如果一个人翻译全部那是行不通的,但只翻译一个模块是花不了一个人几小时的,所以大家一起来翻译的话工作量轻而且效率是很高的。
如果有人想参与翻译的话,先到隔壁的专栏“~~想翻译python的跟贴~~”;然后报上你想翻译的模块的名字,这里有个例子:6.1 os -- Miscellaneous operating system interfaces ,即手册里那个模块的标题,这么做是为了避免重复。
这里当然还要劳驾版主,管理好帖子,别让不相干的帖子进来,如果可以的话,最后不时的给帖子排个序,如果大家都来做,相信要不了多久就能搞定。
这里要提醒的是,如果你想翻译的,必备的工具是金山词霸2005嬴政版,充分发挥词霸的指哪儿译哪儿的功能,然后加点E文基础,又有点计算机术语知识,相信大家会越译越自信。

其实我说这么多无非是想快点有本python库函数的中文译本,大家难道不这么想嘛???
----
我的BLOG:http://xshhe.blogchina.com
[Original] [Print] [Top]
Subject: 6.11 time -- Time access and conversions
Author: canuo    Posted: 2005-03-22 23:55    Length: 11,354 byte(s)
[Original] [Print] [Top]
这个模块提供各种有关时间的函数,他们都是可以用的,但不是所有的函数对所有的运行平台都管用,这个模块的大部分函数名和C库相同作用的函数同名,有时候这样也许对平台的文件系统有帮助,因为在不同的平台时间的调用有点不同===这些意思大概是说各种系统对C的支持比较好,所以python里对时间的调用就用了C的调用方法,这样对跨平台有帮助===

下面做一些说明,是关于一些有关时间的统一的习惯和术语:
1:新纪元是时间的开始,那年的一月一号0点,从那个时候开始的时间定义为0;,unix里。新纪元是1970年,如果你想知新纪元是什么时候,导入time模块,然后调用time.gmtime(0)看看就可知道

2:这个模块得函数不能得到新纪元之前,也不能得到未来得很长的时间,得到的时间段是决定于C库的,如unix,它的未来时间只能得到2038年。

3:Y2K问题:python决定于C库,所以它一般不会有千年虫问题,因为时间都被解释成从1970年开始到现在的秒数。而调用的时候年都是4位的,如2005,那是从秒数处理过来的,因为各种函数如果接受时间参数的话都是4位的格式。看下面的struct_time,但为了向后兼容,2位的如,02年,这种格式PYTHON也支持,但要求模块的变量accept2dear必须得是非0整数,这个变量已被初始化为1除非环境变量PYTHONY2K已被设置为非空的字符串(它默认被初始化为0),因此你可以在环境变量里设置PYTHONY2K为一个非空的字符串以便你调用年的时候都用4位的格式。如果2位的格式被允许,他们会按照POSIX或者X/Open标准被转换,如:69-99会被映射成1969-1999,而0-68,会被映射成2000-2068,而100-1899是不合法的。注意:这是从Python1.5.2(a2)以来的新的定义,而旧版本会把低于1900年的2位时间加上1900。

4: UTC就是Coordinated Universal Time(以前是Greenwich Mean Time,or GMT).
UTC不是一个错误而是english和french的一个折中,==具体不知道==

5:DST是夏令时(Daylight Saving Time),就是一个通过一个时区相差一个小时的办法来调整时间,DST制度是不可思议的(取决于当地的法律),会一年一年的改变,==不懂==,C库里有个表列出了各地的时间标准(但为了适应性通常它是从一个系统文件得到的)。

6:有些系统为了特别目的,他们的各种实事函数的精确度也许会低于标准,如在许多unix系统中,始终滴答一声,代表一秒,而它只分解成50或者100次,而不是1000ms=1s,而在苹果系统中,它是准确的1000ms

7:另方面,time() and sleep()的精确度比unix的好:时间被表示成浮点数,time()函数返回最精确的时间变量(=unix的gettimeofday( )),sleep( )函数可以接受一个非0的分数时间(因为可以转换为浮点嘛),(=unix的select( ))

8:时间的值可以由gmtime(),localtime(),and strptime()得到,他们的返回值还提供了属性名字以为了一些特别的目的,asctime(),mktime(),strftime()接受的参数是一个有9个整数的序列,
index attribute values
0 tm_year (for example, 1993)
1 tm_mon range [1,12]
2 tm_mday range [1,31]
3 tm_hour range [0,23]
4 tm_min range [0,59]
5 tm_sec range [0,61]; see (1) in strftime() description
6 tm_wday range [0,6], Monday is 0
7 tm_yday range [1,366]
8 tm_isdst 0, 1 or -1; see below
注意这个和C的结构不同,月的值是从1-12,而不是从0-11。A year value will be handled as described under 'Year 2000(Y2K)issues'above,A -1参数作为DST的标志,通过mktime()通常会让你选择一个准确的DST区域,
当你提供一个不正确长度的时间,或者非整数的元组给时间函数以期望得到一个时间格式的值,会产生错误TypeError(对后者而言)
在2.2版里做了修改,时间值序列不是一个元组而是一个struct_time,它有什么表格列出来的属性的。



这个模块定义了下面的函数和数据项::
1: accept2dyear:bool值
指示是否可以使用2位的年格式,默认是可以的即accept2dyear=True,但是如果环境变量
PYTHONY2K已经被设置位非空字符串,它或许会在运行时被修改
2:altzone:
如果它被定义了,表示本地的DST时区同西方的UTC的偏移量,如果本地的时区是东方的UTC,那么它是负数,如果本地的时区非0,那么它才会被使用。
3:asctime([t]):
将元组(9个整数)或者struct_time,同gmtime() or localtime()得到的结果一样的时间格式转换成一个24个字符组成的字符串,格式:'Sun Jun 20 23:21:05 1993',如果没有指定t值,那么通过localtime( )得到的当前时间会被作为t,本地信息不能被asctime()使用,注意::不同于C的同名函数,没有字符串结尾的 (因为C里的字符串结尾都会加一个 表示字符串的结尾),2.1版作的改变:允许不提供t值。

4:clock():
unix里,返回当前的处理器时间,表达秒的浮点数,精确点说,实事上处理器时间取决于C的同名函数,但是无论如何,这个函数是PYTHON里定制的准则,虽然是应用的C,但是在PYTHON里你就得用这个函数得到当前处理器时间。

5:ctime([seconds]):
seconds表示从新纪元开始经过的秒数,这个函数将他转换成用字符串描述的时间格式,如果seconds不提供,就将通过time()得到的秒数作为seconds,ctime()等同于asctime(localtime(seconds)),==不知道Locale information is not used by ctime().代表什么意思上面我的解释按照字面意思来的,本地信息不能被asctime()使用,这里是ctime()==,2.4版作改变:如果不提供seconds,那么当前时间作为seconds

6:daylight:
如果DST时区被定义了,那么它是非0的

7:gmtime([seconds]):
seconds同上面,将它转换成UTC的struct_time格式,而且DST标志=0,就是说以西方的某个时区(有谁知道?它的DST=0,可以同中国的北京,香港时区比较一下)格式表示时间,这里的seconds也可以没有,同上面一样都用当前时间计算出seconds,用分数表示的秒被忽略,参考上面的struct_time,它的相反的函数可以参考calendar.timegm(),2.1版作了改变:seconds如果不提供,就根据当前时间计算得到seconds

8:localtime([seconds]):
象gmtime(),但是转换成你本地系统格式的时间,seconds不提供同上面一样,当DST提供时间,DST标志会被设为1,。。

9:mktime(t):
localtime()的反函数,t是struct_time或者9个整数的元组(因为DST标志包括在这9个数中,所以如果你不提供DST标志,那么它默认会以-1代替),他么都是以本地系统格式的时间来表达的,而不是UTC,函数调用后会返回一个浮点数,以便同time()兼容,如果输入的t不正确,OverflowError或者ValueError会产生(取决于这个错误格式的t是被Python还是C调用),早期这个函数可以得到一个与平台无关的时间格式,==不知道是上面意思==

10:sleep(seconds):
和java一样,表示将程序挂起seconds秒,seconds可以是一个浮点数以便得到更精确的挂起时间,实际的挂起时间也许会比要求的少,为什么呢?因为有一些要求程序继续执行的信号会中止sleep(),==看了半天才弄懂了它的意思,也许是错误的==,当然,挂起时间也有可能会比要求的长,因为系统的有些运行程序级别比它高,抢占CPU了,==和,看不懂,所以自以为是的理解了==

11:strftime(format[,t]):
将描绘时间的元组或者struct_time对象(同过gmtime() or localtime()得到)转换成format格式的,如果t不提供,那就用当前时间通过localtime()得到t,当然如果t格式不正确,会产生ValueError错误,
下面的指示说明了format可以使用的格式:
指示 意思
%a Locale's abbreviated weekday name. abbreviated:缩写的意思,
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.适当的日期和时间表示
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locale's equivalent of either AM or PM.
%S Second as a decimal number [00,61].
%U Week number of the year (Sunday as the first day of the week)
as a decimal number [00,53]. All days in a new year
preceding the first Sunday are considered to be in week 0.
%w Weekday as a decimal number [0(Sunday),6].
%W Week number of the year (Monday as the first day of the week)
as a decimal number [00,53]. All days in a new year
preceding the first Monday are considered to be in week 0.
%x Locale's appropriate date representation.
%X Locale's appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
%Z Time zone name (no characters if no time zone exists).
%% A literal "%" character.

注意:1:
当使用strptime()时,%p只影响输出的hour段,如果使用%I会解析hour==理解不透==
2:
%S:实际范围是0-61,==后面的不懂,什么闰秒,双闰秒的==
3:
%W:当使用strptime()时,%U,%W只有当一周多少天并且一年多少天被指定了他们才运算

下面是个例子:
from time import gmtime, strftime
strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
结果:
'Thu, 28 Jun 2001 14:17:15 +0000'

其他的一些格式也许在特定的平台上可以使用,但是上面列出的是ANSIC标准
On some platforms, an optional field width and precision specification can immediately follow the initial "%" of a directive in the following order; this is also not portable. The field width is normally 2 except for %j where it is 3.

12:strptime(string[,format]):
format指定的格式传递一个描述时间的string,得到的结果是一个同gmtime() or localtime() 返回的结果一样的struct_time,foramt参数默认的是"%a %b %d %H:%M:%S %Y",同ctime()得到的结果格式匹配,如果string不是format格式的,产生ValueError错误,如果string有多余的成分也会产生同样的错误,格式(1900, 1, 1, 0, 0, 0,0, 1, -1) .

13:struct_time
他是新版本后来添加的格式,是用来取代元组格式的,可以通过gmtime(),localtime()和strptime()得到

14:time():
返回的结果是UTC时区的,从新纪元(1970)到现在的秒数,用浮点数表示,需要注意的是,即使时间返回的总是一个浮点数,也并不表示所有的系统都能提供精确到相差1秒的性能,==有点混乱==,虽然这个函数通常都返回一个只增不减的值,但是如果你把系统的时间调回去了,那他的到的结果就有可能比先前得到的要低,和·~

14:timezone:
本地的时区偏移量,这个值在大部分西欧国家都是负数,US是正的,UK则==0

15: tzname:
是有两个字符串的元组,第一个表示local non-DST timezone,第二个表示local DST timezone,如果DST timezone没有被定义,那么第二个字符串不会被使用

16:tzset:
重新设置时间转换规则,环境变量TZ详细解释了怎么作。注意TZ环境变量不能有空格

其他参考模块:
datetime;locale;calendar
脚注:%Z现在已经不赞成使用,
The use of %Z is now deprecated, but the %z escape that expands to the preferred hour/minute offset is not supported by all ANSI C libraries. Also, a strict reading of the original 1982 RFC 822 standard calls for a two-digit year (%y rather than %Y), but practice moved to 4-digit years long before the year 2000. The 4-digit year has been mandated by RFC 2822, which obsoletes RFC 822.
----
我的BLOG:http://xshhe.blogchina.com
[Original] [Print] [Top]
Subject: 6.1 os -- Miscellaneous operating system interface
Author: canuo    Posted: 2005-03-24 19:24    Length: 1,926 byte(s)
[Original] [Print] [Top]
这个模块提供了一些比导入的内置模块如posix,nt更多的的轻便的方法去使用系统的功能。
==这里好象是指对不同的系统,python都由相应的模块用来处理,而这个模块则是在更高的层次上通过收集到系统的相关信息,一对其他的系统的调用,不知道解释的对不对===

这个模块搜寻系统的操作方法(有些通过相关的模块也可以实现对系统的操纵),然后给出同操作系统相同功能的函数和数据项,即和系统一样都使用统一的接口调用系统,例如:函数os.stat(path)可以调用windows的POSIX子系统的接口,得到关于path的stat信息,

有些比较特殊的系统也能通过os模块来调用,但是对他们使用的话可能不是那么轻便了==这里可能翻译错误了==

需要注意的是,os被调用以后,there is no performance penalty 用os的函数去取代系统相关模块的直接调用,因此没有必要最好不要使用os

exception error:
当函数返回一个系统相关的错误时(不指那些参数错误和其他的偶然性错误)会抛出这个错误,这个通过exception:OSError也可以了解。伴随着还有两个值:errno(即错误代码整数形式的标志)strerror(错误的描述),他们会被c函数perror()打印到输出端,参考errno模块
错误属于类,有两个属性,errno and strerror,如果错误涉及到系统文件路径的操作(如chdir(),unlink()),他还会有第三个属性,filename(传递给函数的文件名)

name:
得到系统的名字,现在已经注册的名字有posix.nt.mac.os2.ce.java.riscos

path:
相应系统的路径名称操作,如posixpath macpath,因此,合适的情况下导入os.path,然后使用他的方法会比具体系统模块的导入会更方便,如os.path.split(file)-->posixpath.split(file)
注意,这是个可以通过os.path直接导入的模块

子部分:
6.1.1 Process Parameters
6.1.2 File Object Creation
6.1.3 File Descriptor Operations
6.1.4 Files and Directories
6.1.5 Process Management
6.1.6 Miscellaneous System Information
6.1.7 Miscellaneous Functions



----
我的BLOG:http://xshhe.blogchina.com
[Original] [Print] [Top]
Subject: 2.3.7 Set Types
Author: canuo    Posted: 2005-03-26 19:37    Length: 2,168 byte(s)
[Original] [Print] [Top]
set是包涵不可变值的无序的集合,通常用来测试成员数目用的,他能剔除一个序列里重复的成员,他可以进行与,或,非,异或运算

set支持x in set,len(set),for x in set方法,因为无序,所以他不记录元素的位置,因此也不支持插入,索引,切片等操作。

现在有两个内置set类型,set and frozenset,set可变--元素可以通过add(),remove()操作,因为可变,所以他没有哈西值,也不能被用来做字典的关键字,或者作为其他set的元素
frozenset类型不可变,可以哈西--他的值一旦确定就不可更改,因此可以用作字典的关键字,或者作为其他set的成员

set对象和frozenset支持下面的操作:
len(set)
s in t
s not in t
s.issubset(t) s<=t:s是t的子集
s.issuperset(t) s>=t:s是t的父集
s.union(t) s|t :s和t的或集,得到的新集合的元素来自s和t,因为set的元素是无重复的,所以s,t相同元素只取一个
s.intersection(t) s&t:s和t中相同的元素部分作为新集合
s.difference(t) s-t:新集合中的元素属于s,但如果s中有和t中元素相同的则从s中剔除,
s.symmetric_difference(t) s^t:新集合中的元素来自s和t,然后剔除s和t都有的元素
set.copy():这里的拷贝是传值拷贝,即得到一个新的集合,而不是引用原来集合的指针,对新集合的操作不会影响原来的集合。

set和frozenset都支持集合之间的比较,但set不支持__cmp__方法。 set与frozenset的比较是基于他们的元素的,因此set('abc)==frozenset('abc'),这里set和frozenset之间的操作(不是比较)所得到的结果,谁出现在前面就取谁的类型,如fronzenset('ab)|set('ab')得到的结果的类型是frozenset

Pthon里试过了,用上面列出来的左边的方法可以用,用右边的数学表达式也可以用,所以用右边的表达式可以使程序更精练;

下面的方法不支持不可变集合frozenset:
s.update(t) 即s|=t
s.intersection_update(t) 即s&=t
s.difference_update(t) 即s-=t
s.symmetric_difference_update(t) 即s^=t
s.add(x)
s.remove(x) 如果s里没有x元素,抛出KeyError错误
s.discard(x) ==和上面的remove相同,但我不知道他们的不同在什么地方==
s.pop() 从集合里随机移除一个元素,如果集合是空的,那么抛出KeyError错误,
s.clear() 清空集合

----
我的BLOG:http://xshhe.blogchina.com
[Original] [Print] [Top]
Subject: 2.3.1 Truth Value Testing
Author: canuo    Posted: 2005-03-26 20:05    Length: 475 byte(s)
[Original] [Print] [Top]
下面的值被认为是false

1.None
2.False
3.各种数字格式的0,如 0, 0L, 0.0, 0j
4.各种空的序列,如 '', (), []
5.各种空的映射,如 {}
6.如果定义的类定义了__nonzero__()或者__len__()方法,当这些个方法返回0,或者布尔值False时

除了上面的,其他的值都认为时true,因此许多类型的对象总是true。

如果一个操作方法和函数得到的结果是布尔类型的,你们他得到的值是0,1或者False,True。除非有其他的规定。
----
我的BLOG:http://xshhe.blogchina.com
[Original] [Print] [Top]
Subject: Re: 6.1 os -- Miscellaneous operating system interface
Author: passworld    Posted: 2005-03-26 22:53    Length: 610 byte(s)
[Original] [Print] [Top]
os:

“这个模块提供了一些比导入的内置模块如posix,nt更多的的轻便的方法去使用系统的功能。 ”

Portable : 在大多数程序语言里指“兼容”,系统之间的兼容。


“需要注意的是,os被调用以后,there is no performance penalty 用os的函数去取代系统相关模块的直接调用,因此没有必要最好不要使用os ”

听起来挺矛盾吧?" there should be no reason not to use os!" 的直译是:没有原因不用os。 就是说尽管用os,不用担心使用它会降低效率。

"there is no performance penalty" : 没有执行效率上的损失(惩罚)。
[Original] [Print] [Top]
Subject: Re: 6.1 os -- Miscellaneous operating system interface
Author: passworld    Posted: 2005-03-26 23:50    Length: 121 byte(s)
[Original] [Print] [Top]
细想起来,portable 是 port 的形容词,指“可移植性”。就是说可以移植到各个不同的操作系统上。


[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: Leira    Posted: 2005-04-05 19:37    Length: 726 byte(s)
[Original] [Print] [Top]
不知道你有没有看过
http://www.chinesepython.org/cgi_bin/moingb.cgi/_b7_a2_b1_ed_3aPythonLib_ce_c4_bc_fe_b7_ad_d2_eb
中蟒上的翻译计划?

虽然我前一阵因为毕业工作,一直耽误了。整个项目也闲置了。不过,我觉得Open Source的一个精神就是不重复发明轮子。我觉得,如果你真的想做库文档的翻译,可以延续这个计划,或者从整理这个计划的成果,以作为新计划的开始。

你可以统筹规划一下,如果开始,可以算我一个!

另外,似乎现在中蟒的人气很低,不过Wiki确实是一种很好的合作创作方式,可以考虑在啄木鸟Wiki上建一个项目。
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: limodou    Posted: 2005-04-05 21:08    Length: 54 byte(s)
[Original] [Print] [Top]
如果想在啄木鸟上开始,随时可以开展,只要注册用户即可。
----
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: Leira    Posted: 2005-04-06 19:22    Length: 498 byte(s)
[Original] [Print] [Top]
恩~ 我也是在很想把这个翻译计划继续下去,最终完成。
不过,中蟒上的翻译是针对2.3.3版本的,而目前最新的文档是2.4.1的。虽然我现在系统中一直使用的还是2.3.x,不过想听听大家的意见,是继续翻译2.3的文档,还是直接针对2.4.1的文档进行翻译?翻译是一项旷日持久的工作,怕等翻译完成2.3.x早就是昨日黄花了,所以我个人的意见是直接翻译2.4,虽然这样的话,中蟒的转移工作量较大。

还有就是,我觉得针对翻译的版本还是以中蟒那样的latex源代码翻译较好,因为到时候可以做到较好的成品输出。
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: passworld    Posted: 2005-04-06 19:48    Length: 556 byte(s)
[Original] [Print] [Top]
从po4a 的邮件列表看,它的最新版目前支持latex,可以利用它来进行翻译,这样就可以随着原文的更新而方便的更新翻译。而且可以使用po的程序,让翻译更轻松。

po4a 好象是用perl做的,不过作为一个工具嘛,跟用c/c++,java写的没分别,对吧?

po4a 可以把不同格式的文件转换成 gettext 的 po 文件,方便翻译和更新。

地址: http://po4a.alioth.debian.org/



[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: passworld    Posted: 2005-04-06 19:52    Length: 88 byte(s)
[Original] [Print] [Top]
中蟒完成的部分很多吗?看起来很多都是半成品,实际内容真要移起来应该不会很多吧?
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: Leira    Posted: 2005-04-06 20:43    Length: 121 byte(s)
[Original] [Print] [Top]
不多,但是能用则用~

遗憾的是,很久没去中蟒以后,发现不只没有什么更新,而且开始被SPAM腐蚀了。
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: Leira    Posted: 2005-04-06 21:03    Length: 345 byte(s)
[Original] [Print] [Top]
看了一下po4a地说明,似乎很吸引人。原本回来的路上还在考虑这件事情。确实po4a解决了版本管理的问题。不过,用了po4a似乎就不太适合wiki方式工作,而比较适合用svn做工程管理了,或者,直接在wiki上贴出最新的po文件,以供翻译?

不过Latex我基本没有用过,而且似乎对中文的支持有些麻烦,好像目前还不支持unicode,很是个问题,希望有高手参与指点。
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: passworld    Posted: 2005-04-06 22:19    Length: 395 byte(s)
[Original] [Print] [Top]
我觉得由一个管理人员直接把转好的po文件放上wiki比较好,降低了翻译的门坎。po 本身只是简单的文本文件,没有特别格式,直观容易翻译,而且很适合wiki。

至于LaTeX的中文,有中文包可以支持,而且对大多数人来说都不是问题,因为大多用户需要的是由LaTeX转成的html文件或者PDF文件。那些转换程序不把中文弄乱就可以了。直接翻译LaTex的好处在于容易跟原文的更新步调一致。


[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: limodou    Posted: 2005-04-06 23:49    Length: 828 byte(s)
[Original] [Print] [Top]
其实与原文保持同步也不是件容易的事。比如中英文对照。这样会对原文有较大的改变,很难同步。我原先做过一个翻译平台就是希望利用某些自动的规则在原文插入翻译用的插入点,这种算法应该是稳定的。相同的原文会生成相同的插入点。然后利用插入点生成新的html文件加入相应的链接,在显示时根据链接显示原文,译文和评论。只对格式化好的html可以进行处理。如果想看效果可以去: http://pyrecord.freezope.org/translation

我只是提一个思路。个人认为同步是非常困难的,比较可行的方式就是原文与译文分离,同时保持原文段落的独立性,将且每个段落可以生成一个摘要码。通过摘要码与译文进行关联。上面我做的平台没有这么复杂,因为没有考虑原文的变化。这样当原文发生变化时,先进行段落的合并处理。然后再生成摘要码与译文相关联。但还可能要手工处理关联不上部分的内容。
----
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: rockety    Posted: 2005-04-07 19:48    Length: 683 byte(s)
[Original] [Print] [Top]
大家不要在这里讨论了以什么形式组织翻译了,那是次要的。

存成哪种格式,只要译文出来了,还不是很简单的事。

重要的是,现在就开始翻译吧,不要今天还没过,就开始规划50年之后的事,事实证明,考虑的太多,除了拖延眼下的工作之外,没有任何意义,好多项目不都是这样夭折的?

“不要考虑的太多,自己迷惑”---老狼的歌词,很适合任何开源项目。

不要争论,不要谈“主义”,把这些精力拿出来,现在就开始翻译,存储什么格式无所谓,只要能看明白,txt、html、chm、pdf什么不行啊,翻译了就放出来比什么都好。

另:

我正在翻译Tkinter入门,已经完工40%了,本来想完了再放出来,现在想待会儿先打包放出算了。
----
因为你,我才在这沙漠中独步而行..............
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: yuzukyo    Posted: 2005-09-15 19:33    Length: 326 byte(s)
[Original] [Print] [Top]
楼上 说的 Tkinter 入门 是 Fredrik Lundh 写的吗?
我找到一个中译版
地址是:http://yaofeng.cdut.cn/tkintrobook/index.htm

Tkinter 入门
Fredrik Lundh
Copyright &copy; 1999 by Fredrik Lundh

本书中文译本由 Stone 翻译 2001/11/07 version 1.0
[Original] [Print] [Top]
Subject: Re: Python库函数的翻译计划,~希望看到的人都来参与~
Author: jasonnbfan    Posted: 2006-04-25 08:27    Length: 24 byte(s)
[Original] [Print] [Top]
好啊,支持翻译,越快越好
[Original] [Print] [Top]
« Previous thread
~~想翻译python的跟贴~~
Python 编 程
11
Next thread »
请问winxp下怎样安装jython
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 04:11:16, cost 0.071194887161255 ms.