摘要

书接前文:

本文将讲解Python标准库内容,有操作系统接口os、文件路径通配符glob、命令行参数sys、正则表达式re、数学math、日期与时间、数据压缩、性能评估等,我们只需要知道有些什么内容,用到时候再查找资料即可,无需熟记,也记不住。

一 操作系统接口及文件通配符

1-路径操作

import os

os.getcwd()#获取当前路径

os.chdir('../')#改变当前路径

os.getcwd()#获取当前路径

2-不同操作系统有不同接口函数

有进程参数、文件创建、进程管理、调度等

具体参考:

https://docs.python.org/3.6/library/os.html#module-os

3-文件通配符

import glob

glob.glob('*.py')#返回当前路径下所有py文件数组

适配查找文件

>>>import glob

>>> glob.glob('./[0-9].*')

['./1.gif', './2.txt']

>>> glob.glob('*.gif')

['1.gif', 'card.gif']

>>> glob.glob('?.gif')

['1.gif']

>>> glob.glob('**/*.txt', recursive=True)

['2.txt', 'sub/3.txt']

>>> glob.glob('./**/', recursive=True)

['./', './sub/']

4-命令行参数

参考:

https://docs.python.org/3.6/library/sys.html#module-sys

二 字符串匹配正则表达式

1-示例

>>>import re

>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')

#\b表示匹配一个单词边界,也就是指单词和空格间的位置。 f开始的单词

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

>>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')

'cat in the hat'

2-正则表达式语法

re.match(pattern, string, flags=0)

更多参考:

https://docs.python.org/3.6/library/re.html#module-re

三 数学计算与时间

1-math

涵括:数论计算、指数计算、三角函数、角度计算、双曲线、常量等

直接传入参数调用函数即可,比较简单,请参考:

https://docs.python.org/3.6/library/math.html#module-math

import math

math.gamma(0.5)#伽马函数

math.pi#Π值

2-datetime

>>> # dates are easily constructed and formatted

>>> from datetime import date

>>> now = date.today()

>>> now

datetime.date(2003, 12, 2)

>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")

'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

>>> # dates support calendar arithmetic

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

>>> age = now - birthday

>>> age.days

14368

四 数据压缩

常见数据压缩格式: zlib, gzip, bz2, lzma, zipfile and tarfile.

>>> import zlib

>>> s = b'witch which has which witches wrist watch'

>>> len(s)

41

>>> t = zlib.compress(s)

>>> len(t)

37

>>> zlib.decompress(t)

b'witch which has which witches wrist watch'

>>> zlib.crc32(s)

226805979

五 多线程

模块:

_thread(3.6之后不兼容了)

threading(推荐使用)

import threading

import time

exitFlag = 0

class myThread (threading.Thread):

def __init__(self, threadID, name, counter):

threading.Thread.__init__(self)

self.threadID = threadID

self.name = name

self.counter = counter

def run(self):

print ("开始线程:" + self.name)

print_time(self.name, self.counter, 5)

print ("退出线程:" + self.name)

def print_time(threadName, delay, counter):

while counter:

if exitFlag:

threadName.exit()

time.sleep(delay)

print ("%s: %s" % (threadName, time.ctime(time.time())))

counter -= 1

# 创建新线程

thread1 = myThread(1, "Thread-1", 1)

thread2 = myThread(2, "Thread-2", 2)

# 开启新线程

thread1.start()

thread2.start()

thread1.join()

thread2.join()

print ("退出主线程")

Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,Python 的 Queue 模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列 PriorityQueue。更多参考:

https://www.runoob.com/python3/python3-multithreading.html

六 弱引用

为了提高性能,采用弱引用方式调用对象,当删除对象的时候,自动释放内存,引用失效。常用于创建对象耗时、缓存对象等。

>>> import weakref, gc

>>> class A:

... def __init__(self, value):

... self.value = value

... def __repr__(self):

... return str(self.value)

...

>>> a = A(10) # create a reference

>>> d = weakref.WeakValueDictionary()

>>> d['primary'] = a # does not create a reference

>>> d['primary'] # fetch the object if it is still alive

10

>>> del a # remove the one reference

>>> gc.collect() # run garbage collection right away

0

>>> d['primary'] # entry was automatically removed

Traceback (most recent call last):

File "", line 1, in

d['primary'] # entry was automatically removed

File "C:/python36/lib/weakref.py", line 46, in __getitem__

o = self.data[key]()

KeyError: 'primary'

七 其他

还有logging日志,array、collections数组集合工具、decimal浮点数运算、reprlib输出格式等等

5个python标准库及作用_零基础编程——Python标准库使用相关推荐

  1. dump文件_零基础编程——Python文件、JSON数据存储

    摘要 书接前文: 01-<零基础编程--起步并搭建Python环境> 02-<零基础编程--变量与数据类型> 03-<零基础编程--Python循环.函数.类> 教 ...

  2. python for loop循环程序语句_零基础学习 Python 之 for 循环语句

    写在之前 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具体应用方面.我是完全自学的 Python,所以很是明白自学对于一个人的考验,所 ...

  3. python多久能找到工作_零基础自学Python多久可以找工作?

    零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...

  4. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

  5. 0基础学python需要多长时间_零基础学python大概要多久

    如果是自学的话,零基础学python大概要花一年到一年半的时间.每个人的资质不同.理解能力不同,所以花费的时间也不一样.建议零基础的学员报一个python培训班,这样可以有规划的系统性学习,而且花费的 ...

  6. python后端开发学什么_零基础学Python,这是阿里Python8年开发经验写给你的学习路线图...

    今天给大家分享一位前辈整理的一个Python web学习路线.这位前辈由于有编程基础,所以采用了自学Python的方式.学完后主要做后端开发.希望对你有所启发. 整理的一个 python web 学习 ...

  7. python进阶与数据操控_零基础机器学习Python进阶:Python操作MySql

    阅读文本大概需要 6 分钟 前言 基础写了十篇,以后会继续更,这是第二篇进阶,文末会放上链接,进阶分成另一个系列,柠檬有时间会整理好菜单栏让大家更方便的阅读基础和进阶,柠檬会把自己在当时做的项目写到进 ...

  8. 零基础python视频教程谁的好_零基础自学Python!自我提升视频教程,新手必看

    小编今天给大家分享一套高老师的python400集视频教程,里面包含入门进阶,源码,实战项目等等,,不管你是正在学习中,还是想要学习的,通通来吧 肯定不会让你失望. 目录大纲: 本套教程15天 学前环 ...

  9. python制作软件很复杂_零基础学Python难吗,或者有什么其他数据加工软件推荐?...

    之前因为一个问题的回答:零基础想系统的学习金融学.量化投资.数据分析.Python,需要哪些课程和书籍.获赞1000+.大概整理一下之前的答案,回答下这个问题. 金融领域的量化分析如今是很受重视的,所 ...

最新文章

  1. 神经网络 | 受限波尔兹曼机(附源代码)
  2. Android执行shell命令
  3. Spring在web开发中的应用
  4. IDEA弹出'xxx' is not allowed to run in parallel. Would you like to stop the running one?
  5. 导入功能 php,php Excel 导入功能
  6. 营销 客户旅程模板_我如何在国外找到开发人员的工作:我从营销到技术的旅程...
  7. 李航《统计学习方法》-----朴素贝叶斯
  8. php ftp a站到b站,phpcmsv9在做推送中将a站文章内容完美的推送b站点下
  9. idea非开源安装指南_开发人员开源指南
  10. WordPress企业主题:BDV适合于小型公司、企业,主要以产品类为主
  11. 一个常见问题的解决——Ext grid的宽度高度如何自适应
  12. 不会框架不要紧,我带你自定义框架
  13. 用PyTorch实现一个卷积神经网络进行图像分类
  14. 在win10下下载wsl
  15. 将数字金额转换为对应的中文大写金额
  16. 程序员培训学多久?学半年能做程序员吗?
  17. python获取鼠标的当前坐标
  18. SQL语句学习(自学记录)
  19. ACE网络编程开发网
  20. linux下防止rm-rf /处理,削减删除的影响力!

热门文章

  1. 计算机一级在线解析,2016年计算机一级试题及答案解析
  2. ElasticSearch三master节点集群状态查看方法
  3. 微型计算机有缺点,PT开口安装微机消谐的优缺点?
  4. 多元有序logistic回归_R语言多元Logistic逻辑回归 应用案例
  5. LayoutInflater——inflate方法不同参数的区别
  6. android源码出现的@字符代表什么意思
  7. Jsp servlet mysql 学生信息管理系统
  8. 程序设计思路报告快递运输路线优化系统
  9. 计算机网络DNS域名配置,如何设置计算机的IP地址和DNS域名服务器
  10. Python(140行):第一次作业_中小学数学卷子自动生成程序