os模块-操作系统接口
os模块提供了不少与操作系统相关联的函数。
import os
建议使用 "import os" 风格而非 "from os import *"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。
os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\'
os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix'
os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径
os.getenv() 获取一个环境变量,如果没有返回none
os.putenv(key, value) 设置一个环境变量值
os.listdir(path) 返回指定目录下的所有文件和目录名
os.remove(path) 函数用来删除一个文件
os.system(command) 函数用来运行shell命令
os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用 '\r\n',Linux使用 '\n' 而Mac使用 '\r'
os.path.split(path) 函数返回一个路径的目录名和文件名
os.path.isfile() 和os.path.isdir()函数分别检验给出的路径是一个文件还是目录
os.path.exists() 函数用来检验给出的路径是否真地存在
os.curdir 返回当前目录 ('.')
os.mkdir(path) 创建一个目录
os.makedirs(path) 递归的创建目录
os.chdir(dirname) 改变工作目录到dirname
os.path.getsize(name) 获得文件大小,如果name是目录返回0L
os.path.abspath(name) 获得绝对路径
os.path.normpath(path) 规范path字符串形式
os.path.splitext() 分离文件名与扩展名
os.path.join(path,name) 连接目录与文件名或目录,path需存在
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
os.walk(top,topdown=True,onerror=None) 遍历迭代目录
os.rename(src, dst) 重命名file或者directory src到dst 如果dst是一个存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一个file, 如果用户有权限的话,它将被安静的替换. 操作将会失败在某些Unix 中如果src和dst在不同的文件系统中. 如果成功, 这命名操作将会是一个原子操作 (这是POSIX 需要). 在 Windows上, 如果dst已经存在, 将抛出OSError,即使它是一个文件. 在unix,Windows中有效。
os.renames(old, new) 递归重命名文件夹或者文件。像rename()
shutil 模块
处理日常的文件和目录管理任务
shutil.copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉
shutil.move( src, dst) 移动文件或重命名
shutil.copymode( src, dst) 只是会复制其权限其他的东西是不会被复制的
shutil.copystat( src, dst) 复制权限、最后访问时间、最后修改时间
shutil.copy( src, dst) 复制一个文件到一个文件或一个目录
shutil.copy2( src, dst) 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西
如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作
shutil.copytree( olddir, newdir, True/Flase)
把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
shutil.rmtree( src ) 递归删除一个目录以及目录内的所有内容
将当前目录下的所有PY文件复制到backup文件夹下:
# coding=gbk import shutil import os # 列出当前目录下文件,文件夹(列表形式返回) for file in os.listdir("."): # 拆分文件名与后缀名返回数组,并且提取[1]为后缀名,判断是否为py文件 # 是则输出文件名称 if os.path.splitext(file)[1] == ".py": print(file) # 使用join将文件名称变为backup/filename.py路径 # 将file文件拷贝到backup/filename.py内 shutil.copy(file, os.path.join("backup", file))
glob模块
用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。
查找文件只用到三个匹配符:”*”, “?”, “[]”。
”*”匹配0个或多个字符
”?”匹配单个字符
”[]”匹配指定范围内的字符,如:[0-9]匹配数字。
glob.glob
返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。下面是使用glob.glob的例子:
import glob #获取指定目录下的所有图片 print glob.glob(r"E:/Picture/*/*.jpg") #获取上级目录的所有.py文件 print glob.glob(r'../*.py') #相对路径 或者: >>> import glob >>> glob.glob('*.py') ['primes.py', 'random.py', 'quote.py']
glob.iglob
获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。
与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。
命令行参数
命令行参数以链表形式存储于 sys 模块的 argv 变量。
例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:
>>> import sys >>> print(sys.argv) ['demo.py', 'one', 'two', 'three']
re模块
re模块为高级字符串处理提供了正则表达式工具。对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:
>>> import re >>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') ['foot', 'fell', 'fastest'] 如果只需要简单的功能,应该首先考虑字符串方法,因为它们非常简单,易于阅读和调试: >>> 'tea for too'.replace('too', 'two') 'tea for two'
'*'
星号,指定将前面的RE重复0次或者任意多次,而且总是试图尽量多次地匹配。
'+'
加号,指定将前面的RE重复1次或者任意多次,而且总是试图尽量多次地匹配。
'?'
问号,指定将前面的RE重复0次或者1次,如果有的话,也尽量匹配1次。
*?, +?, ??
从前面的描述可以看到'*','+'和'?'都是贪婪的,但这也许并不是我们说要的,所以,可以在后面加个问号,将策略改为非贪婪,只匹配尽量少的RE。示例,体会两者的区别:
>>> re.findall('<(.*)>', '<H1>title</H1>') ['H1>title</H1'] >>> re.findall('<(.*?)>', '<H1>title</H1>') ['H1', '/H1']
'.'
点号,在普通模式,它匹配除换行符外的任意一个字符;如果指定了 DOTALL 标记,匹配包括换行符以内的任意一个字符。
'^'
尖尖号,匹配一个字符串的开始,在 MULTILINE 模式下,也将匹配任意一个新行的开始。
'$'
美元符号,匹配一个字符串的结尾或者字符串最后面的换行符,在 MULTILINE 模式下,也匹配任意一行的行尾。也就是说,普通模式下,foo.$去搜索'foo1\nfoo2\n'只会找到'foo2′,但是在 MULTILINE 模式,还能找到 ‘foo1′,而且就用一个 $ 去搜索'foo\n'的话,会找到两个空的匹配:一个是最后的换行符,一个是字符串的结尾,演示:
>>> re.findall('(foo.$)', 'foo1\nfoo2\n') ['foo2'] >>> re.findall('(foo.$)', 'foo1\nfoo2\n', re.MULTILINE) ['foo1', 'foo2'] >>> re.findall('($)', 'foo\n') ['', '']
re.match(pattern, string[, flags])
如果字符串string的开头和正则表达式pattern匹配的话,返回一个相应的MatchObject的实例,否则返回None
注意:要在字符串的任意位置搜索的话,需要使用上面的search()。
re.findall(pattern, string[, flags])
以列表的形式返回string里匹配pattern的不重叠的子串。string会被从左到右依次扫描,返回的列表也是从左到右一次匹配到的。如果pattern里含有组的话,那么会返回匹配到的组的列表;如果pattern里有多个组,那么各组会先组成一个元组,然后返回值将是一个元组的列表。
re.sub(pattern, repl, string[, count])
替换,将string里,匹配pattern的部分,用repl替换掉,最多替换count次(剩余的匹配将不做处理),然后返回替换后的字符串。如果string里没有可以匹配pattern的串,将被原封不动地返回。repl可以是一个字符串,也可以是一个函数(也可以参考我以前的例子)。如果repl是个字符串,则其中的反斜杆会被处理过,比如 \n 会被转成换行符,反斜杆加数字会被替换成相应的组,比如 \6 表示pattern匹配到的第6个组的内容。
数学:
math模块为浮点运算提供了对底层C函数库的访问:
random模块提供了生成随机数的工具。
访问 互联网
有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib:
>>> from urllib.request import urlopen >>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'): ... line = line.decode('utf-8') # Decoding the binary data to text. ... if 'EST' in line or 'EDT' in line: # look for Eastern Time ... print(line)
datetime模块
日期和时间
datetime模块为日期和时间处理同时提供了简单和复杂的方法。
支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。
from datetime import date now = date.today() print(now) birthday = date(2017, 3, 20) age = now - birthday print(age.days) now = now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.") print(now) 结果: 2017-03-29 9 03-29-17. 29 Mar 2017 is a Wednesday on the 29 day of March.
获取昨天日期:
import datetime def getYesterday(): today=datetime.date.today() oneday=datetime.timedelta(days=1) yesterday=today-oneday return yesterday # 输出 print(getYesterday())
。。
相关推荐
网络协议部分是Python标准库的一个大块,包含了socket、select、asyncore、asynchat等基础网络编程模块,以及urllib、urlparse、cookie、robotparser、ftplib、gopherlib、httplib、poplib、imaplib、smtplib、...
综上所述,Python 3.6标准库参考手册为开发者提供了一个宝贵的资源库,涵盖了从基础到高级的所有内置组件,大大提高了Python编程的效率和质量。通过深入了解和运用这些标准库资源,开发者可以更快地解决问题,创造出...
Python3标准库是Python编程语言的核心组成部分,包含了丰富的模块和函数,为开发者提供了大量预先编写好的功能,大大简化了各种任务的实现。本参考手册详细介绍了这些库的使用方法和功能,是Python3开发者的必备参考...
Python标准库01 正则表达式 (re包) - Vamei - 博客园 Python标准库02 时间与日期 (time, datetime包) - Vamei - 博客园 Python标准库03 路径与文件 (os) Python标准库04 文件管理 (部分os包,shutil包) - Vamei - ...
另外,标准库中的threading和queue模块则为多线程和队列操作提供了支持,是并发编程的基础。 在Python中,使用标准库通常比依赖第三方库更为稳定,因为这些库经过了广泛的测试和优化,并且随Python版本的更新而不断...
本章为该课程的其中一个章节 【全部课程列表】 第1章-程序设计基本方法 共45页.pptx 第2章-Python语言基本语法元素 共46页.ppt ...第7章-Python标准库概览 共47页.ppt 第8章-Python第三方库概览 共60页.ppt
- **模块和库**:讲解Python的标准库和第三方库,如Numpy、Pandas和Matplotlib,用于数据处理和可视化。 - **文件I/O和网络编程**:涉及文件读写和网络请求,为数据采集做准备。 - **数据分析预处理**:使用Python...
在2014年,辛星完成了对Python标准库的整理工作,发布了一个名为“2014年辛星python标准库整理夏季版”的文档。这份文档是对Python标准库的一次深入梳理和总结,尽管辛星本人承认这份文档可能不全面,并承诺在未来的...
Python标准库是Python编程语言的核心组成部分,它包含了丰富的模块和函数,为开发者提供了大量预先编写好的功能,大大简化了开发过程。Python 2.0的标准库共有360个示例,这些示例覆盖了各种用途,从网络通信到文件...
Python标准库是Python编程语言的核心组成部分,包含了大量预先编写好的模块和函数,为开发者提供了丰富的功能,无需从零开始编写所有代码。这份“Python标准库中文版PDF(带章节书签)”是对于这个庞大资源库的详细...
非常实用的查询手册,支持最新版的Python 3.3标准库,在Python开发过程中,如果遇到不清楚的标准库函数或者是类,模块,都可以从该手册中查询相应的类、模块、函数、方法,属性的使用方法和功能说明,可以查看返回值...
"Crossin的编程教室"提供的这份资源对于初学者和有经验的开发者来说都是一个宝贵的参考资料,它不仅涵盖了Python基础,还包括了许多进阶主题,可以帮助读者深入理解Python的全貌,提升编程能力。 在使用Python标准...
python3.8.4标准库部分,已经全部翻译成中文,下载官网中文文档的基础上,对没有翻译的部分进行补充翻译。chm中,语言参考和教程部分有目录但是打不开。没有js报错,有类似jdk的chm的索引和搜索功能,很好用。本来是...
Python标准库是Python编程语言的核心组成部分,包含了丰富的模块和函数,为开发者提供了各种功能和工具,使得Python在处理各种任务时具有极高的灵活性和效率。这些模块涵盖了网络通信、文件处理、操作系统接口、数据...
6. **Python标准库math中的函数**:`sqrt`函数用于计算一个数的平方根。 7. **在IDLE交互模式中浏览上一条语句**:使用快捷键`Alt+P`可以在IDLE交互模式下快速访问前一条输入的命令。 8. **Python中的空类型**:`...
标准库的目的是为Python程序员提供一套丰富的基础工具集,以应对各种常见的编程任务,如文本处理、文件操作、数学计算、网络编程、日期时间处理、数据结构等。本文将详细介绍Python标准库的模块和它们的使用方法。 ...
Python标准库是Python编程语言的核心组成部分,包含了大量预先编写好的模块和函数,为开发者提供了丰富的功能,涵盖了网络通信、文件处理、系统接口、数据解析等多个领域。这些库使得Python成为了一种功能强大的工具...
Python标准库是Python语言的一部分,为开发者提供了丰富的模块,可以直接在编程中使用,无需额外安装。以下详细介绍几个在Python标准库中的模块,它们分别在不同的场景下发挥着重要作用。 首先,核心模块是任何...
**Python基础教程第三版概述** Python是一种高级编程语言,以其简洁、易读的语法和强大的功能而闻名。作为初学者入门编程或者专业人士增强技能的工具,Python基础教程第三版是学习这一语言的理想资源。该高清版教程...