专栏首页python3Notes for python (1)

Notes for python (1)

使用sys模块

#!/usr/bin/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'

它如何工作

首先,我们利用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所列的目录之一。

from..import语句

如果你想要直接输入argv变量到你的程序中(避免在每次使用它时打sys.),那么你可以 使用from sys import argv语句。如果你想要输入所有sys模块使用的名字,那 么你可以使用from sys import *语句。这对于所有模块都适用。一般说来,应该避免使用from..import而 使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。

模块的__name__

__name__ can indicate the module which loaded current module

#!/usr/bin/python # Filename: using_name.py if __name__ == '__main__':     print 'This program is being run by itself' else:     print 'I am being imported from another module'

制造你自己的模块

#!/usr/bin/python # Filename: mymodule.py def sayhi():     print 'Hi, this is mymodule speaking.' version = '0.1' # End of mymodule.py

上面是一个 模块 的例子。你已经看到,它与我们普通的Python程序相比并没有什么特别之处。我们接下来将看看如何在我们别的Python程序中使用这个模块。

记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。

#!/usr/bin/python # Filename: mymodule_demo.py import mymodule mymodule.sayhi() print 'Version', mymodule.version

from..import

下面是一个使用from..import语法的版本。

#!/usr/bin/python # Filename: mymodule_demo2.py from mymodule import sayhi, version # Alternative: # from mymodule import * sayhi() print 'Version', version

dir()函数

你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。

当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表

$ python >>> import sys >>> dir(sys) # get list of attributes for sys module OK,Chapter 8 is over, next time I will learn next Chapter http://linux.chinaitlab.com/manual/Python_chinese/ch09.html,Good luck!!!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python之sys模块

    py3study
  • python sys.argv[]用法

        sys.argv变量是一个字符串的列表。特别地,sys.argv包含了命令行参数 的列表,即使用命令行传递给你的程序的参数。

    py3study
  • python模块—command and

      返回结果是一个tuple元组,第一个值为接收状态码,int类型,0表示正常,非0表示异常;第二个值为字符串,即shell命令执行的结果

    py3study
  • python之sys模块

    py3study
  • Python中文报错问题

    异常信息:SyntaxError: Non-ASCII character '\xe6' in file D:/pythonlearning/HelloPyth...

    用户1134788
  • Python--sys

    功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕...

    yaohong
  • python模块—command and

      返回结果是一个tuple元组,第一个值为接收状态码,int类型,0表示正常,非0表示异常;第二个值为字符串,即shell命令执行的结果

    py3study
  • python 查看系统的默认编码

    expressions = """ locale.getpreferredencoding() type(my_file) my_file.encodin...

    用户5760343
  • 【Python】重定向 Stream 到

    Python 系统模块 sys 中有三个变量 stdin 、 stdout 与 stderr ,分别对应标准输入流、输出流与错误流。stdin 默认指向键盘, ...

    py3study
  • Python 探针实现原理

    本文将简单讲述一下 Python 探针的实现原理。 同时为了验证这个原理,我们也会一起来实现一个简单的统计指定函数执行时间的探针程序。 探针的实现主要涉及以下几...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券