Python基础5

正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

  • 常用运算符与表达式:
      ^ 开始
      () 域段
      [] 包含,默认是一个字符长度
      [^] 不包含,默认是一个字符长度
      {n,m} 匹配长度
      . 任何单个字符(. 字符点)
      | 或
      \ 转义
      $ 结尾
      [A-Z] 26个大写字母
      [a-z] 26个小写字母
      [0-9] 0至9数字
      [A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
      , 分割
      .

  • 实例:
      字符串;tel:086-0666-88810009999
      原始正则:"^tel:[0-9]{1,3}-[0][0-9]{2,3}-[0-9]{8,11}$"

速记理解:开始 “tel:普通文本”[0-9数字]{1至3位}"-普通文本"[0数字][0-9数字]{2至3位}"-普通文本"[0-9数字]{8至11位} 结束"
等价简写后正则写法:"^tel:\d{1,3}-[0]\d{2,3}-\d{8,11}$" ,简写语法不是所有语言都支持。

os模块

  • 一、什么是os模块

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块。python编程时,经常和文件、目录打交道,这是就离不了os模块,本节内容将对os模块提供的函数进行详细的解读

  • 二、常用的os模块命令
  1. os.name——name顾名思义就是’名字’,这里的名字是指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows
    返回 ‘nt’; Linux 返回’posix’。注意该命令不带括号。

  2. os.getcwd()——全称应该是’get current work directory’,获取当前工作的目录,如:返回结果为:‘C:\Program
    Files\Python36’。注意该命令带括号,除了第一个命令不带括号之外,以下命令基本都带括号。

  3. os.listdir(path)——列出path目录下所有的文件和目录名。Path参数可以省略。

  4. os.remove(path)——删除path指定的文件,该参数不能省略。

  5. os.rmdir(path)——删除path指定的目录,该参数不能省略。

  6. os.mkdir(path)——创建path指定的目录,该参数不能省略。 注意:这样只能建立一层,要想递归建立可用:os.makedirs()

  7. os.path.isfile(path)——判断指定对象是否为文件。是返回True,否则False

  8. os.path.isdir(path)——判断指定对象是否为目录。是True,否则False。

  9. os.path.exists(path)——检验指定的对象是否存在。是True,否则False.

  10. os.path.split(path)——返回路径的目录和文件名,即将目录和文件名分开,而不是一个整体。此处只是把前后两部分分开而已。就是找最后一个’/’。

  11. os.system(cmd)——执行shell命令。返回值是脚本的退出状态码,0代表成功,1代表不成功

  12. os.chdir(path)——'change dir’改变目录到指定目录

  13. os.path.getsize()——获得文件的大小,如果为目录,返回0

  14. os.path.abspath()——获得绝对路径。

  15. os.path.join(path, name)—连接目录和文件名,与os.path.split(path)相对。

  16. os.path.basename(path)——返回文件名

  17. os.path.dirname(path)——返回文件路径

datetime模块

datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1.

datetime模块定义了5个类,分别是

1.datetime.date:表示日期的类

2.datetime.datetime:表示日期时间的类

3.datetime.time:表示时间的类

4.datetime.timedelta:表示时间间隔,即两个时间点的间隔

5.datetime.tzinfo:时区的相关信息

http请求

  • python内置了urllib包来处理http请求
  • 第三方库–requests
发请get请求超级简单:
print requests.get('http://localhost:8080).text
就一句话,再来看看post请求
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text
也很简单。
如果要认证:
url = 'http://localhost:8080'
r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin'))
print r.status_code
print r.headers
print r.reason

题目

1.请用户输入一个时间,输出选项所对应的现在时间,告诉用户这两个时间相隔的天数,小时数,分钟数和秒数。
2.请用户输入电话及邮箱,判断用户输入是否合法。
3.对http://www.baidu.com 进行请求,并用正则化匹配图片内容。将百度图标爬取下来保存至本地

from datetime import datetime,timedelta

inputTime = input('请按照yyyy-mm-dd hh:mm:ss 的格式输入公式:')
inputTime= datetime.strptime(inputTime,'%Y-%m-%d %H:%M:%S')
now = datetime.now()
timeMargin = now - inputTime

print('您输入的时间为:','\n',inputTime)
print('当前的时间为:','\n',now)
print('时间间隔为{}天{}小时{}分钟{}秒'.format(timeMargin.days,timeMargin.seconds//(60*60),timeMargin.seconds%(60*60)//60,timeMargin.seconds%(60*60)%60))
import re
phoneNumber=input('请输入您的电话号码:')
p= re.compile(r'1[3,4,5,7,8]\d{9}')
phonematch = re.match(p,phoneNumber)

if phonematch:
    print(phonematch.group())
else:
    print("您输入的电话号码不合法")

emailNumber=input('请输入您的邮箱地址:')
e= re.compile(r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")
emailmatch = re.match(e,emailNumber)

if emailmatch:
    print(emailmatch.group())
else:
    print("您输入的邮箱不合法")
import re
from PIL import Image
from io import BytesIO
response = requests.get('https://www.baidu.com')
p1 = r"src=//(.+\.png)"
pattern1 = re.compile(p1)
pnglist = pattern1.findall(response.content.decode('utf-8'))
x = 0
for pngurl in pnglist:
    png = requests.get("https://" + pngurl)
    image = Image.open(BytesIO(png.content))
    image.save(str(x) + '.png')
    x += 1

参考文献

https://www.cnblogs.com/chuxiuhong/p/5885073.html
https://blog.csdn.net/menghuanshen/article/details/79055994
https://www.jianshu.com/p/9a9dd097d282
https://blog.csdn.net/qq_28304687/article/details/76551196

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值