python 查看模块属于哪个包

Python012

python 查看模块属于哪个包,第1张

模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法. 输入: #!/usr/bin/env python # Filename: using_sys.py import sys print 'The command line arguments are:' for i in sys.argv: print i print '\n\nThe PYTHONPATH is',sys.path,'\n' 输出: $ python using_sys.py we are arguments The command line arguments are: using_sys.py we are arguments The PYTHONPATH is ['/home/swaroop/byte/code', '/usr/lib/python23.zip', '/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2', '/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload', '/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0'] 首先,我们利用import语句 输入 sys模块。基本上,这句语句告诉Python,我们想要使用这个模块。sys模块包含了与Python解释器和它的环境有关的函数。 当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。另外,“sys”是“system”的缩写。 sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突。另外,它也清晰地表明了这个名称是sys模块的一部分。 sys.argv变量是一个字符串的 列表 (列表会在后面的章节详细解释)。特别地,sys.argv包含了 命令行参数 的列表,即使用命令行传递给你的程序的参数。 如果你使用IDE编写运行这些程序,请在菜单里寻找一个指定程序的命令行参数的方法。 这里,当我们执行python using_sys.py we are arguments的时候,我们使用python命令运行using_sys.py模块,后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。 记住,脚本的名称总是sys.argv列表的第一个参数。所以,在这里,'using_sys.py'是sys.argv[0]、'we'是sys.argv[1]、'are'是sys.argv[2]以及'arguments'是sys.argv[3]。注意,Python从0开始计数,而非从1开始。 sys.path包含输入模块的目录名列表。我们可以观察到sys.path的第一个字符串是空的——这个空的字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着你可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一。

在 python 官网下载 Gzipped source tar ball, 解压缩后, 会发现 Lib/os.py 文件这行代码

from posix import *

可是没有文件叫 posix.py 啊, 到底在那 ? 其实 posix module 是 builtin 的其中一分子,如下示范:

>>>import sys

>>>print sys.builtin_module_names

(*__builtin__*, *__main__*, *_ast*, *_codecs*, *_sre*, *_symtable*, *_warnings*, *_weakref*, *errno*, *exceptions*, *gc*, *imp*, *marshal*, *posix*, *pwd*, *signal*, *sys*, *thread*, *zipimport*)

>>>

所以要去 Modules 目录查找 c 代码, 你会看见 posixmodule.c, 打开它看见这行代码:

{"listdir", posix_listdir, METH_VARARGS, posix_listdir__doc__},

再寻找上面所得到的 posix_listdir method, 可以找到 listdir 源代码:

static PyObject *

posix_listdir(PyObject *self, PyObject *args)

{

/* XXX Should redo this putting the (now four) versions of opendir

in separate files instead of having them all here... */

#if defined(MS_WINDOWS) &&!defined(HAVE_OPENDIR)

PyObject *d, *v

HANDLE hFindFile

BOOL result

如果你记不住所有的Python关键词,没关系,你可以使用keyword模块查看。

具体使用如下:

import keyword

print(keyword.kwlist)

执行结果如下:

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

如果你想知道列表里的词是不是关键词,可以使用iskeyword

import keyword

l=['for','end','as','python','is','good']

for iin l:

print('%8s'%i,keyword.iskeyword(i))

执行结果如下:

for True

    end False

      as True

  python False

      is True

    good False

True代表是的, False代表不是。

_______________END______________