`
ikeycn
  • 浏览: 146242 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Python入门系列:Python标准库

阅读更多
Python标准库
译于 A byte of Python

引言:
Python 标准库(Standard Library)包含了大量非常有用的模块(module),并是Python的标准安装版的一部分。熟悉Python标准库是非常重要的,因为当你熟悉这些标准库的行为之后,你会发现很多东西能够快速的解决。
我们将介绍标准库中一些常用的模块。你可以在Python文档的"Library Reference"(随Python而安装)部分找到详尽的关于所有模块的介绍和展示。

下面我们开始展示一些非常有用的模块。
sys module
The sys module包含了与系统相关的功能。假设我们想要检查当前使用的Python的版本,并检查我们正在使用的的版本不低于Python3,sys module帮助我们完成了相关的功能。
>>> import sys
>>> sys.version_info
(3, 0, 0, 'beta', 2)
>>> sys.version_info[0] >= 3


执行过程:
sys module 有一个version_info数组(tuple)保存了版本信息。第一个元素是主版本号(major version)。我们能够通过检查这个确保程序只在某个版本以上(或以下运行),如下:
# Filename: versioncheck.py
import sys, warnings
if sys.version_info[0] < 3:
	warnings.warn("Need Python 3.0 for this program to run", RuntimeWarning)
else:
	print('Proceed as normal')


输出如下:
$ python2.5 versioncheck.py
versioncheck.py:6: RuntimeWarning: Need Python 3.0 for this program to run
	RuntimeWarning)
$ python3 versioncheck.py
Proceed as normal


执行过程:
我们使用了标准库中的另外一个模块:warnings,它为最终用户显示警告信息。如果Python的版本号小于3,我们将显示出相应的警告信息。
#########################################
logging module
如果你想让一些调试信息或者一些重要的其他信息存储起来以便于之后来检查程序是否按照你想要的方式运行,你会怎么做?你怎样来把这些信息存储在某个地方(store somewhere)?logging module能帮助你实现这些。
# Filename: use_logging.py

import os, platform, logging

if platform.platform().startswith('Windows'):
    logging_file = os.path.join(os.getenv('HOMEDRIVE'),
os.getenv('HOMEPATH'), 'test.log')
else:
    logging_file = os.path.join(os.getenv('HOME'),'test.log')

logging.basicConfig(
    level = logging.DEBUG,
    format='%(asctime)s : %(levelname)s : %(message)s',
    filename = logging_file,
    filemode = 'w',
)

logging.debug("Start of the program")
logging.info("Doing something")
logging.warning("Dying now")

程序输出:
$python use_logging.py

如果你查看文件test.log的内容(在C:\Users\Administrator目录下),你将看到以下内容:
2010-06-13 23:25:39,128 : DEBUG : Start of the program
2010-06-13 23:25:39,315 : INFO : Doing something
2010-06-13 23:25:39,315 : WARNING : Dying now

执行过程:
我们使用了标准库中的三个模块:os module用来与操作系统交互, platform module用来获得使用的平台的信息,例如操作系统,logging module用来输出日志信息。
首先,我们通过platfrom.platform()返回的字符串来判断我们使用的操作系统 (可以通过import platfomr; help(platform)获得更多关于platform的信息)。如果是Windows系统, 我们找出系统盘(home drive), 用户主目录(home folder)并提供用来存储信息的文件名。把这三部分连接起来,我们就得到了文件的绝对路径。对于其他平台(Unix/Linux), 我们仅需要知道用户主目录(home folder)就可以获得文件的绝对路径了。
我们使用os.path.join()函数把上述三部分连接起来。使用具体的函数(join)而不是通过执行字符串的"+"操作是因为该函数能保证文件路径的格式与操作系统中路径格式匹配。我们配置(configure) logging module用来把信息以特定的格式保存到指定的文件中。
最后,我们把debugging, informagion, warning甚至cirtical信息保存到文件中。一旦程序执行完成,我们就可以查看文件,并掌握程序执行的过程,即使程序中没有为用户输出任何信息。
########################################
urllib and json modules
如果我们能让程序从网络上获得搜索结果应该是多么令人愉快的一件事啊!下面我们开始尝试。
我们只需要通过几个模块就能实现上面的效果。首先需要的就是url module,它为我们抓取(fetch)网络上的任何网页。我们将使用雅虎(Yahoo!)来获得搜索结果,幸运的是它为我们提供了JSON格式的搜索结果,我们可以使用python标准库上内置的json module来简化解析json格式的结果的过程。
TODO
我在使用过程中遇到了一些问题,最终没能成功——希望在以后能顺利实现该功能。
# Filename: yahoo_search.py

import sys
if sys.version_info[0] != 3:
    sys.exit('This program need Python 3')

import json
import urllib, urllib.parse, urllib.request, urllib.response

# Get your own APP ID at http://developer.yahoo.com/wsregapp/
YAHOO_APP_ID = \
'jl22psvV34HELWhdfUJbfDQzlJ2B57KFS_qs4I8D0Wz5U5_yCI1Awv8.lBSfPhwr'
SEARCH_BASE = \
'http://search.yahooapis.com/WebSearchService/V1/webSearch'

class YahooSearchError(Exception):
    pass

# Taken from http://developer.yahoo.com/python/python-json.html
def search(query, results=20, start=1, **kwargs):
    kwargs.update({
        'appid': YAHOO_APP_ID,
        'query': query,
        'results': results,
        'start': start,
        'output': 'json'
        })
    url =SEARCH_BASE + '?' + urllib.parse.urlencode(kwargs)
    result = json.load(urllib.request.urlopen(url))
    if 'Error' in result:
        raise YahooSearchError(result['Error'])
    return result['ResultSet']

query = input('What do you want to search for?')
for result in search(query)['Result']:
    print("{0} : {1}".format (result['Title'], result['Url']))

执行过程:
通过为我们的搜索文本指定一种具体格式,我们能从一个具体的站点(particular website)上获得搜索结果。我们通过使用key1=value1&key2&value2的格式指定一些选项,这个功能是通过urllib.parse.urlencode()函数实现的。
在你的浏览器中打开如下链接:http:/ / search. yahooapis. com/
WebSearchService/ V1/ webSearch?query=byte+ of+ python&
appid=jl22psvV34HELWhdfUJbfDQzlJ2B57KFS_qs4I8D0Wz5U5_yCI1Awv8. lBSfPhwr&
results=20& start=1& output=json
你将会看到20条搜索结果,其格式为JSON的形式。
我们使用urllib.request.urlopen()函数来获得到一个URL的连接,并把打开的URL传递给json.load()进行加载。该函数将读取加载的内容,并转化为Python对象。然后我们通过循环的方式把这些结果显示给最终用户(end-user)

Module of Week Series
标准库中还有更多的模块:debugging, handling, command line options, regular expressions 等等。可以通过阅读Doug Hellmann的Python Module of Week Series来更深入的学习和使用这些模块。

结束语:
通过上面的介绍,我们学习了几种Python modules,而在Python中还有大量的模块。我们强烈推荐通过浏览Python标准库文档(Python Standard Library documentation, http:/ / docs. python. org/ dev/ 3. 0/ library/)来学习所有相关的模块。

说明:该文章从 A byte of Python v1.92 for Python3.0翻译而来,望指正
分享到:
评论

相关推荐

    《Python编程:从入门到实践》源代码文件

    3. **模块与包**:了解如何导入和使用Python标准库和第三方库,以及如何创建自定义模块和包,理解`import`语句的工作原理。 4. **面向对象编程**:类和对象的概念,类的定义,属性和方法,继承、多态和封装等面向...

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第.pptx

    2. Python模块和包:包括Python的标准库和第三方库,以及如何使用这些库来扩展Python的功能。 3. 文件操作:包括文件的读写、复制、重命名等操作。 4. 网络编程:包括TCP/IP协议和HTTP协议等。 5. 多线程编程:...

    Python入门教程.pdf

    4. **函数与模块**:介绍函数的定义、参数传递,以及Python标准库和第三方模块的使用,让读者学会复用代码。 5. **面向对象编程**:深入讲解类和对象的概念,继承、封装和多态等面向对象特性,让读者理解面向对象...

    《Python 编程:从入门到实践》阅读计划

    - 深入了解面向对象编程原理以及Python标准库的功能。 ##### 第三部分(15—20章) - **重点内容**: - 虚拟环境的设置与管理。 - 数据可视化的实现方法,包括Matplotlib和Pygal的使用。 - **难点内容**: - ...

    python编程(从入门到实践).zip

    在《Python编程:从入门到实践》这本书中,你会学习到基础的编程概念,如变量、数据类型、控制流(条件语句和循环)、函数,以及如何使用Python的标准库。这本书还将引导你了解面向对象编程,理解类和对象的概念,...

    Python实验报告_Python入门教程_

    9. **Python标准库**:如os模块用于操作系统交互,sys模块获取系统信息,datetime模块处理日期和时间,random模块生成随机数,这些都在实际编程中频繁使用。 10. **实践项目**:理论学习后,通过编写小项目(如...

    python入门和简介

    ### Python入门与简介知识点梳理 #### 一、Python概述 - **定义与特点**:Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它由Guido van Rossum在1989年圣诞节期间构思,第一个公开发行版本发布于...

    python3.8入门教程完整版-Python3.8从入门到精通(视频教学版).pdf

    1.2 选择Python的理由:Python适合初学者入门,拥有丰富的库支持,适用于Web开发、数据分析、人工智能等多个领域,且有活跃的社区和文档支持。 1.3 搭建Python编程环境:在Windows和Linux系统下,通过官方下载页面...

    Python入门学习手册 .pdf

    11. 标准库介绍:概述Python标准库中的一些常用模块,如os、sys、datetime等,这些模块为Python程序提供了丰富的功能。 12. 实用技巧:提供一些Python编程的小技巧和最佳实践,帮助新手更好地理解和使用这门语言。 ...

    Python入门资料,python入门书籍,Python源码.zip

    Python源码:这个部分可能包含了一些Python标准库的源代码,或者是开源项目的示例代码。通过阅读源码,初学者可以学习到如何组织代码、设计函数和类,以及如何使用Python的高级特性,如装饰器、生成器、上下文管理器...

    【源代码】深度学习入门:基于Python的理论与实现.zip

    本资源"【源代码】深度学习入门:基于Python的理论与实现.zip"提供了一个全面的学习路径,帮助初学者从理论到实践,掌握深度学习的基本概念和技术。 首先,我们来探讨深度学习的基础理论。深度学习的核心在于多层非...

    Python入门基础教程全套.ppt下载

    Python 具有易于学习、易于阅读、易于维护、强大标准库、互动模式、可移植、可扩展、数据库操作、GUI 编程、可嵌入等十大特点。 三、Python 应用领域 Python 广泛应用于 Web 开发领域、操作系统管理、服务器运维的...

    Python入门基础.pptx

    1.丰富的库:Python有一个庞大的标准库,涵盖了网络、文件、数据结构、算法等多方面的功能。 2.简单、易学:Python的语法简洁易懂,容易上手。 3.可扩展、可嵌入:Python可以轻松地与其他语言集成,扩展其功能。 4....

    python入门教程(PPT39页).pptx

    Python的标准库非常强大且易于使用,涵盖了各种功能,如HTML和XML解析、字符串处理、单元测试、网络访问、图形界面开发,甚至与其他编程语言如C++、Java和.NET的集成。Python的这种特性使得它成为一种“胶水语言”,...

    Python入门指南-Python2.7官方教程.pdf

    Python的标准库: * Python的标准库提供了许多有用的模块,例如math、time、os等。 * math模块:提供了数学函数,例如sin、cos、tan等。 * time模块:提供了时间相关的函数,例如time、sleep等。 * os模块:提供了...

    Python编程从入门到实践书本源代码文件.rar

    4. **标准库和第三方库的使用**:Python拥有丰富的标准库,如os、sys、datetime等,以及众多第三方库如Numpy、Pandas、Matplotlib等用于科学计算和数据可视化。源代码会展示如何导入和使用这些库,帮助读者了解...

    Python程序设计:搭建Python开发环境(案例).pptx

    另外,Python拥有丰富的标准库和第三方库,如NumPy、Pandas和Django等,极大地增强了其功能和实用性。 在应用领域上,Python的使用范围非常广泛。在Web开发中,有Django和Flask这样的框架;在数据科学中,Python与...

    python入门基础知识.pdf

    Python入门基础知识 Python是一门动态语言,具有以下特点: 1. 不需要编译,直接运行,可以快速上手。 2. 动态类型,变量类型不需要指定,在运行时根据内容决定。 3. 误差处理:所有错误都是运行时的,语法错误或...

    python初级教程:入门详解(新手学python必备知识).pdf

    优点:Python提供了丰富的标准库和第三方库,如NumPy、Pandas用于数据处理,Matplotlib和Seaborn用于数据可视化,TensorFlow和PyTorch用于深度学习,使得开发者能够快速实现复杂功能。 缺点:虽然Python的执行效率...

    Python Tkinter入门讲义 完整版PDF

    Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 Tkinter 的优点和缺点 1. 简单易学,相对于其他的比如 wxPython,PyQt 等等,学起来会非常轻松。 2. 可以使用少量的代码产生...

Global site tag (gtag.js) - Google Analytics