python--模块、正则

1、模块

  import 模块的实质就是把导入模块的代码,从上到下执行一遍,找模块的顺序是,先找当前目录,再到环境变量里查找;

  模块分为标准模块、第三方模块、自己写的模块。其安装方式如下:

  标准模块

    python自带,无需安装,直接import即可

  自己写的模块

    自己写的python

  第三方模块

    别人开发好的功能,需要安装

    安装方式1:

      自动安装

      pip install xxx #安装xxx模块

      pip list #查看已安装的模块

      pip uninstall xxx #卸载xxx模块

      pip模块,在python3里自带,python2里需要手动安装

      另:easy_install xxx 也可以直接安装

    安装方式2:

      手动安装

      下载安装包,解压,进入目录

      cmd里运行安装命令 python xxx install

      eg:python setup.py install

2、os 模块

 1      print(os.getcwd())                    #取当前工作目录
 2         print(os.chdir(r"e:\byz_code\day2"))       #更改当前目录
 3         print(os.mkdir("test1"))              #创建文件夹
 4         print(os.makedirs(r"test1\test2"))        #递归创建文件夹,父目录不存在时创建父目录
 5         print(os.removedirs(r"test1\test2"))       #递归删除空目录
 6         print(os.rmdir("test1"))              #删除指定的文件夹,只能删除空文件夹
 7         print(os.remove(r"E:\byz_code\day4\a.txt"))   #删除文件
 8         os.rename("test","test1")              #重命名
 9         print(os.sep)                     #当前操作系统的路径分隔符
10         print(__file__)                    #代表当前文件
11         print(os.path.abspath(‘bb.py‘))          #获取绝对路径
12         print(os.path.dirname())              #获取父目录
13         print(os.path.exists("hhaaa"))           #目录/文件是否存在
14         print(os.path.isfile("bb.py"))            #判断是否是一个文件
15         print(os.path.isdir("/usr/local"))        #是否是一个路径
16         print(os.path.join("root",‘hehe‘,‘haha‘,‘a.log‘)) #路径拼接

3、time 模块

1 time.sleep(1)                  #sleep1s
2 print(int(time.time()))           #取当前时间戳
3 print(time.strftime("%y%m%d %H%M%S"))  #将时间元组转换成格式化输出的字符串

4、sys 模块

1 sys.argv                        #命令行参数List,第一个元素是程序本身路径
2 sys.exit(‘xxxxx‘)               #退出程序,正常退出时exit(0)
3 sys.path                     #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
4 sys.platform                 #返回操作系统平台名称  if __name__==‘__main__‘          #为当前调试代码,只在本文件执行

5、正则表达式

  用来查找字符串,能查找比较复杂的字符串,import re 用来导入正则表达式。

1 re.search(r‘is‘,s).group()          #匹配字符串,整个内容查找,若找到则返回第一个
2 re.findall(r‘is‘,s)              #整个内容查找,返回所有值,形成一个list
3 print(re.sub(r‘best‘,‘BEST‘,s))        #替换字符串,接收3个参数,
4                                       第一个是正则表达式,第二个是要替换成什么,
5                                       第三个就是要查找的字符串
6                                       若匹配不到,返回原字符串
7     re.split(‘is‘,s)                #分隔字符串

  常用表达式符号:

    数量词

 1      *     匹配前面的字符的0次或多次,只是*前面的一个字符
 2         +     匹配前一个字符1次或多次,只是+前面一个字符
 3         ?    匹配前一个字符1次或0次,只是?前面的一个字符
 4         {m}    匹配前一个字符m次
 5         {m,n}  匹配前一个字符m-n次
 6         .      匹配除/n以外的其他字符
 7         \     转译符,比如想找特殊字符,就需要转移
 8         |      匹配|左边或右边的字符
 9         ^      匹配以什么字符开头,多行情况下匹配每一行的开头,需要指定第三个参数re.M
10                print(re.findall(r‘^b‘,‘best is goodb is bes\nbesttt is hha ‘,re.M))

    边界匹配

1      ^     匹配以什么字符开头,多行情况下匹配每一行的开头,需要指定第三个参数re.M
2               print(re.findall(r‘^b‘,‘best is goodb is bes\nbesttt is hha ‘,re.M))
3         $     匹配以什么字符结尾,多行时匹配每一行结尾,需指定第三个参数re.M
4               print(re.findall(r‘d$‘,‘besttest is good\nbest is good‘,re.M))
5         \A    仅以什么字符开头,不能用于多行           print(re.findall(r‘\Ab‘,‘besttest is good‘))
6         \Z    仅以什么字符结尾,不能用于多行           print(re.findall(r‘d\Z‘,‘besttest is good‘))

    预定义字符

 1 \d  匹配所有数字
 2         \D  匹配非数字
 3         \w  匹配数字、字母、中文
 4         \W  匹配特殊字符
 5         \s  匹配空白字符,如\t \n \r 空格等
 6         \S  匹配非空白字符
 7         [xxxx]  字符集合,匹配集合里的任意一个字符
 8                          [A-z] 大小写字母
 9                          [a-z] 小写字母
10                          [A-Z] 大写字母
11                          [0-9] 所有数字
12                      在[]里面如果用^的话代表取反,也就是不包括的这些字符串的

    分组匹配

      把某些规则写在一个组里,直接对这个组进行匹配,如IP地址规则

1     print(re.findall(r‘\d{1,3}(?:\.\d{1,3}){3}‘,"192.168.1.3"))
2         findall方法里面有分组的话,默认结果就只是分组里面的内容
3             【?:】 启用“不捕捉模式”
时间: 2024-11-10 16:24:15

python--模块、正则的相关文章

Python全栈 正则表达式(re模块正则接口全方位详解)

re模块是Python的标准库模块 模块正则接口的整体模式 re.compile 返回regetx对象 finditer fullmatch match search 返回 match对象 match.属性|方法 re模块的使用: regex = re.compile(pattern,flags = 0) 功能 : 生成正则表达式对象 参数 : pattern     正则表达式 flags  功能标志位,丰富正则表达式的匹配 返回值: 返回一个正则表达式对象 re.findall(patter

记录我所接触的python模块

文本re   模式匹配,正则BeautifulSoup HTML分析ElementTree   XML分析 文档与报告shelve      对象数据库,操作此实例如操作字典poplib      以pop3方式接收邮件imaplib     以imap方式接收邮件 gdchart     画图reportlab   生成pdf文件smtplib     发送邮件email       发送邮件,可以带附件 网络模块socket      原始的网络组件httplib     可作为http客户

python 模块知识(持续更新......)

提示:当不会用模块方法的时候用help >>> import re >>>help(re.search) 查看模块的所有方法: >>>import re >>>dir(re) 1.sys 模块 sys.argv包含了命令行参数列表,脚本的名称总是sys.argv列表的第一个参数,也就是sys.argv[0] 2.os 模块 Python 模块包含普遍的操作系统功能. 在Python中运行shell命令 1.os.system('com

python模块 - re模块

http://blog.csdn.net/pipisorry/article/details/45476817 Python除了 str 对象自带的一些方法外,re文字处理能力也很强大. Python中转义字符 正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \\\\ "表示正则表达式中的" \ ",因为正则表达式中如果要匹配" \ ",需要用\来转义,变成&q

python模块之os和os.path模块

1.os模块os.listdir(dirname) 列出dirname下的目录和文件os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径.os.getenv()和os.putenv()函数分别用来读取和设置环境变量.os.curdir:返回但前目录(’.') os.chdir(dirname):改变工作目录到dirnameos.sep 可以取代操作系统特定的路径分割符.os.name字符串指示你正在使用的平台.比如对于Windows,它是’nt’,而对于Linux/U

python 模块之路 re模块运用

re模块    正则混合使用                  永远不要起一个py文件的名字   这个名字和你已知的模块同名  而且没有意义   文件名字要有意义 查找: findall : 匹配所有 每一项都是列表中的一个元素 ret = re.findall('\d+','sjkhk172按实际花费928') # 正则表达式,带匹配的字符串,flag ret = re.findall('\d','sjkhk172按实际花费928') # 正则表达式,带匹配的字符串,flag print(re

re模块(正则)

一, 什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法. 在python中,正则内嵌在python中,并通过re模块实现,正则表达模式被编译成一系列的字节码,然后由c编写的匹配引擎执行. 二,常用的匹配模式(元字符) import re # 将所有的数据都找出来放进列表中list,一一匹配 print(re.findall('alex', 'haha alex is alex is dsb')) # >>>: ['alex', 'ale

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

Python模块的交叉引用问题分析

实际项目中遇到python模块相互引用问题,查资料,说是通过import局部导入的方式可以避免错误,资料如附录所述. 但更改后测试还是会出错,很疑惑!? 如果哪位读者有好的解决方法,敬请留言说明,谢谢. 所以,最好的方法是不进行交叉引用,如果需要就单独分一个模块出来. 附录:Python模块的交叉引用问题解读:How can I have modules that mutually import each other? 有下面两个文件相互引用,Python解释器报错. foo.py: from

python模块以及导入出现ImportError: No module named 'xxx'问题

python模块以及导入出现ImportError: No module named 'xxx'问题 python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用 如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比 如在a.py中使用b.py:  import b 但是如果要import一个不同目录的文件(例如b.py)该怎么做