标准库举例:sys、copy

引言:Python标准库内容非常多,有人专门为此写过一本书。本文将选择几个呈现出来,一来显示标准库之强大功能,二来演示如何理解和使用标准库。sys是常用的标准库,已经不陌生了;copy也是已经用过的标准库。先从熟悉的入手,容易理解,这也是“杀熟”。
本文选自《跟老齐学Python:轻松入门》。

sys

  这是一个跟Python解释器关系密切的标准库,前面已经使用过:sys.path.append()。

  显示了sys的基本文档,第一句话概括了本模块的基本特点。
  在诸多sys函数和属性中,下面选择常用的来说明。

1.sys.argv

  sys.argv是专门用来向Python解释器传递参数的,所以称为“命令行参数”。
  先解释什么是命令行参数。

  这里的--version就是命令行参数。如果使用python –help,则可以看到更多:

  这里只显示了部分内容,所看到的如-B、-h都是参数,比如python -h,其功能同上。所以,-h也是命令行参数。
  sys.arg的作用就是通过它向解释器传递命令行参数。比如:

  将上述代码保存,文件名是22101.py。然后如此操作:

  将结果和前面的代码做个对比。

  • 在$ python sys_file.py中,“sys_file.py”是要运行的文件名,同时也是命令行参数,是前面的python这个指令的参数,其地位与python-h中的参数-h是等同的。
  • sys.argv[0]是第一个参数,就是上面提到的sys_file.py,即文件名。

如果这样来试试:

  在这里用sys.argv [1]得到的就是beginner,依次类推。

2.sys.exit()

  这个方法的作用是退出当前程序。

  从文档信息中可知,如果用sys.exit()退出程序,就会返回SystemExit异常。这里先告知读者,还有另外一种退出方式,即os._exit(),这两者有所区别。

  这段程序的运行结果如下:

  在大多数函数中会用到return,其含义是终止当前的函数,并向调用函数的位置返回相应值(如果没有就返回None)。但是sys.exit()的含义是退出当前程序(不仅仅是退出当前函数),并发起SystemExit异常。这就是两者的区别。
  如果使用sys.exit(0)表示正常退出,则需要在退出的时候有一个对人友好的提示,可以用sys.exit("I wet out at here."),那么字符串信息就会被打印出来。

3.sys.path

  sys.path已经不陌生了,它可以查找模块所在的目录,以列表的形式显示出来。如果用append()方法,就能够向这个列表增加新的模块目录,如前所演示,不再赘述。

copy

  前面对浅拷贝和深拷贝做了研究,这里再次提出,温故而知新。

  这个模块中常用的就是copy和deepcopy。
  为了具体说明,看这样一个例子,这个例子跟以前讨论浅拷贝和深拷贝时略有不同,请读者认真推敲结果,并对照代码。

  一切尽在不言中,请读者认真对照上面的显示结果,体会深拷贝和浅拷贝的实现方法和含义。

  本文选自《跟老齐学Python:轻松入门》,点此链接可在博文视点官网查看此书。
                    
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                       

时间: 2024-11-03 22:16:29

标准库举例:sys、copy的相关文章

Python标准库之Sys模块使用详解

  这篇文章主要介绍了Python标准库之Sys模块使用详解,本文讲解了使用sys模块获得脚本的参数.处理模块.使用sys模块操作模块搜索路径.使用sys模块查找内建模块.使用sys模块查找已导入的模块等使用案例,需要的朋友可以参考下 sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. 使用sys模块获得脚本的参数 代码如下: print "script n

《C++编程剖析:问题、方案和设计准则》——第一章泛型编程与C++标准库1.1:vector的使用

第一章泛型编程与C++标准库 C++编程剖析:问题.方案和设计准则C++最强大的特性之一就是对泛型编程的支持.C++标准库的高度灵活性就是明证,尤其是标准库中的容器.迭代器以及算法部分(最初也称为STL). 与我的另一本书More Exceptional C++ [Sutter02]一样,本书的开头几条也是介绍STL中一些我们平常熟悉的部件,如vector和string,另外也介绍了一些不那么常见的设施.例如,在使用最基本的容器vector时如何避免常见的陷阱?如何在C++中进行常见的C风格字符

Python标准库——走马观花

原文:Python标准库--走马观花 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢!   Python的一大好处在于它有一套很有用的标准库(standard library).标准库是随着Python一起安装在你的电脑中的,是Python的一部分 (当然也有特殊情况.有些场合会因为系统安全性的要求,不使用全部的标准库,比如说Google App Engine).   利用已有的类(class)和函数(function)进行开发

第十章 Python常用标准库/模块使用(必会)

本章涉及标准库: 1.sys 2.os 3.glob 4.math 5.random 6.platform 7.pikle与cPikle 8.subprocess 9.Queue 10.StringIO 11.logging 12.ConfigParser 13.urllib与urllib2 14.json 15.time 16.datetime 10.1 sys 1)sys.argv 命令行参数. argv[0] #代表本身名字 argv[1] #第一个参数 argv[2] #第二个参数 ar

Python模块和标准库的使用教程

#!/usr/bin/env python # coding=utf-8 lang = "python" 引入模块 >>> import sys >>> sys.path.append("~/Documents/VBS/StartLearningPython/2code/pm.py") >>> import pm >>> pm.lang 'python' 当Python解释器读取了 .py 文件

Java SE 8:标准库增强

Lambda表达式是Java SE 8的核心功能,大部分的改进都围绕lambda表达式展开.(Jigsaw项目已经被推迟到Java SE 9.)关于lambda表达式的内容,已经在上一篇文章中进行了说明.这篇文章主要介绍Java SE 8中包含的其他Java标准库的增强. 并行排序 随着多核CPU的流行,Java平台的标准库实现也尽可能利用底层硬件平台的能力来提高性能.Java SE 7中引入了Fork/Join框架作为一个轻量级的并行任务执行引擎.Java SE 8把Fork/Join框架用到

Python强大的自有模块——标准库

引言:Python的强大体现在"模块自信"上,因为Python不仅有很强大的自有模块(标准库),还有海量的第三方模块(或者包.库),并且很多开发者还在不断贡献在自己开发的新模块(或者包.库).本文将向大家概述介绍Python的自有模块--标准库. 本文选自<跟老齐学Python:轻松入门>. "Python自带'电池'",这种说法流传已久. 在Python被安装的时候,就有不少模块也随着安装到本地的计算机上了.这些东西就如同"电力"一

Python标准库01 正则表达式 (re包)

原文:Python标准库01 正则表达式 (re包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢!   我将从正则表达式开始讲Python的标准库.正则表达式是文字处理中常用的工具,而且不需要额外的系统知识或经验.我们会把系统相关的包放在后面讲解.   正则表达式(regular expression)主要功能是从字符串(string)中通过特定的模式(pattern),搜索想要找到的内容. 语法 之前,我们简介了字符串相关

Python标准库04 文件管理 (部分os包,shutil包)

原文:Python标准库04 文件管理 (部分os包,shutil包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢!   在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令.Python标准库则允许我们从Python内部管理文件.相同的目的,我们有了两条途径.尽管在Python调用标准库的方式不如操作系统命令直接,但有它自己的优势.你可以利用Python语言,并发挥其他Python工具,形成组