`

toolbox.py源代码分析

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

"""Miscellaneous utility functions

This program is part of "Dive Into Python", a free Python book for

experienced programmers. Visit http://diveintopython.org/ for the

latest version.

"""

__author__ = "Mark Pilgrim (mark@diveintopython.org)"

__version__ = "$Revision: 1.3 $"

__date__ = "$Date: 2004/05/05 21:57:20 $"

__copyright__ = "Copyright (c) 2001 Mark Pilgrim"

__license__ = "Python"

def openAnything(source):

"""URI, filename, or string --> stream

This function lets you define parsers that take any input source

(URL, pathname to local or network file, or actual data as a string)

and deal with it in a uniform manner. Returned object is guaranteed

to have all the basic stdio read methods (read, readline, readlines).

Just .close() the object when you're done with it.

Examples:

>>> from xml.dom import minidom

>>> sock = openAnything("http://localhost/kant.xml")

>>> doc = minidom.parse(sock)

>>> sock.close()

>>> sock = openAnything("c:\\inetpub\\wwwroot\\kant.xml")

>>> doc = minidom.parse(sock)

>>> sock.close()

>>> sock = openAnything("<ref id='conjunction'><text>and</text><text>or</text></ref>")

>>> doc = minidom.parse(sock)

>>> sock.close()

"""

if hasattr(source, "read"):

#The arguments are an object and a string. The result is True if the string is the name of #one of the object's attributes, False if not

#这个函数是检查read是否是source的一个属性

return source

if source == "-":

import sys

return sys.stdin

#若source是一个字符串“-”,则导入sys模块,并返回标准输入

# try to open with urllib (if source is http, ftp, or file URL)

import urllib

#导入urllib模块

try:

return urllib.urlopen(source)

#返回打开的url

#试着返回

except (IOError, OSError):

pass

# try to open with native open function (if source is pathname)

try:

return open(source)

except (IOError, OSError):

pass

# treat source as string

import StringIO

return StringIO.StringIO(str(source))

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics