python拥有强大的标准库,常见的python标准库

  python拥有强大的标准库,常见的python标准库

  操作系统接口

  操作系统模块提供了大量与操作系统交互的功能:

  进口货

  Os.getcwd()#返回当前工作路径

   C:\\Python37

  OS . chdir(/server/access logs )#更改当前工作路径

  Os.system(mkdirtoday)#调用系统shell附带的mkdir命令。

  0请确保使用导入操作系统,而不是从操作系统导入*。第二种方法会导致os.open()覆盖系统自带的open()函数,而且这两个函数的作用差别很大。

  在使用大型模块(如操作系统)时,内置的dir()和help()函数是非常有用的交互工具:

  进口货

  总监(操作系统)

  返回包含os模块所有函数的列表。

  帮助(操作系统)

  返回从os模块docstring生成的手册。对于日常文件或目录管理任务,shutil模块提供了一个更高级别的接口,使用户更容易使用:

  importshutil

  shutil.copyfile(data.db , archive.db )

  archive.db

  shutil . move(/build/executables , installdir )

  install dir 文件通配符

  glob模块提供了在目录中进行通配符搜索的功能,以获得文件列表。

  importglob

  glob.glob(*。py’)

  [primes.py , random.py , quote . py ]命令行参数

  常见的工具类脚本经常需要处理命令行参数。这些参数存储在sys模块的argv属性中,并以列表形式存在。例如,以下是在命令行上运行python demo.py one two three的结果输出:

  importsys

  打印(sys.argv)

  [demo.py , one , two , three ]getopt模块使用Unix约定的getopt()函数处理sys.argv More模块提供了更强大、更灵活的命令行处理。

  错误输出重定向和退出程序

  Sys模块具有stdin、stdout和stderr属性。后者在处理警告和错误消息时非常有用。即使stdout被重定向,您仍然可以看到错误消息:

  sys.stderr.write(Warning,logfilenoftfoundstartinganevone \ n )

  警告,logfilenotfoundstartinganewon

  e退出程序最直接的方法是用sys.exit()。

  字符串匹配

  re 模块为字符串的进阶处理提供了正则表达式的工具。对于复杂的匹配操作,正则表达式给出了简洁有效的解决方案:

  

>>>importre

  >>>re.findall(r'\bf[a-z]*','whichfootorhandfellfastest')

  ['foot','fell','fastest']

  >>>re.sub(r'(\b[a-z]+)\1',r'\1','catinthethehat')

  'catinthehat'

当只需要简单的功能时,采用字符串的方法更简洁易懂:

  

>>>'teafortoo'.replace('too','two')

  'teafortwo'

数学库

  math 模块可以访问 C 语言编写的浮点类型数学库函数:

  

>>>importmath

  >>>math.cos(math.pi/4)0.70710678118654757

  >>>math.log(1024,2)10.0

random模块提供了进行随机选择的工具:

  

>>>importrandom

  >>>random.choice(['apple','pear','banana'])

  'apple'

  >>>random.sample(range(100),10)#不重复抽样

  [30,83,16,4,8,81,41,50,18,33]

  >>>random.random()#随机的float类型输出

  0.17970987693706186

  >>>random.randrange(6)#从range(6)的返回范围内产生随机数

  4

网络请求

  有一大堆模块可以访问网络并根据各自网络协议来处理数据。其中最简单的两个分别是用于从 URL 获取数据的 urllib.request 和用于发送邮件的 smtplib :

  

>>>fromurllib.requestimporturlopen

  >>>withurlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl')asresponse:

  ...forlineinresponse:

  ...line=line.decode('utf-8')#解码.

  ...if'EST'inlineor'EDT'inline:#查看是否是EST或EDT时间

  ...print(line)

  <BR>Nov.25,09:43:32PMEST

  >>>importsmtplib

  >>>server=smtplib.SMTP('localhost')

  >>>server.sendmail('soothsayer@example.org','jcaesar@example.org',

  ..."""To:jcaesar@example.org

  ...From:soothsayer@example.org

  ...

  ...BewaretheIdesofMarch.

  ...""")

  >>>server.quit()

日期和时间

  datetime 模块提供了多种用于简单处理和复杂处理日期和时间的类。支持日期时间的运算、时间解析、格式化输出等,实现上重点优化了效率。模块也支持了时区的概念。

  

>>>#日期对象能非常方便的构建和输出

  >>>fromdatetimeimportdate

  >>>now=date.today()

  >>>now

  datetime.date(2003,12,2)

  >>>now.strftime("%m-%d-%y.%d%b%Yisa%Aonthe%ddayof%B.")

  '12-02-03.02Dec2003isaTuesdayonthe02dayofDecember.'

  >>>#支持日期运算

  >>>birthday=date(1964,7,31)

  >>>age=now-birthday

  >>>age.days

  14368

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: