面试整理:模块
常用模块
os
sys
json
re
logging
requests
beautifulsoup
os模块是与操作系统交互的一个接口 比如用来处理文件和目录
OS模块常用方法
os.remove(‘path/filename’) 删除文件 os.rename(oldname, newname) 重命名文件 os.walk() 生成目录树下的所有文件名 os.chdir('dirname') 改变目录 os.getcwd() 取得当前工作目录 os.path.getsize() 返回文件大小
sys模块常用方法
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称
re模块(正则)
. 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 匹配非字母或数字或下划线 \D 匹配非数字 \S 匹配非空白符 a|b 匹配字符a或字符b () 匹配括号内的表达式,也表示一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符 用法说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次
用re实现匹配: 邮箱、手机号、IP
# 匹配手机号 import re def phone(arg): s=re.match("^(13|14|15|18)[0-9]{9}$",arg) if s: return "正确" return "错误" print(phone("23722751552")) # 匹配邮箱 re.match("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$",arg) #匹配IP re.match("\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b",arg) # ?: 优先匹配 # \b 匹配一个单词的结尾
match和search的区别
# re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None; # re.search匹配整个字符串,直到找到一个匹配。 import re s="fnfffidvvgf" m=re.match("fi",s) print(m) #None s=re.search("fi",s).group() print(s) #fi
贪婪匹配与非贪婪匹配
# 贪婪匹配: 匹配1次或多次<.+> 匹配0次或多次<.*> # 非贪婪匹配:匹配0次或1次<.?>
给出路径找文件
# (使用os.walk) file-- 是你所要便利的目录的地址, 返回的是一个三元组(root,dirs,files)。 # root 所指的是当前正在遍历的这个文件夹的本身的地址 # dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录) # files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录) def open_2(file): for root, dirs , files in os.walk(file): print("ss",files) for filename in files: print(os.path.abspath(os.path.join(root, filename))) open_2("F:\搜索")
创建删除文件
# 创建一个文件 open("chao.txt","w",encoding="utf-8") import os #删除文件 os.remove("chao.txt")
第三方软件安装
# pip3 包管理器 # 源码安装 -下载、解压 -python setup.py bulid -python setup.py install