文件操作

  • 对文件操作流程

    • 打开文件,得到文件句柄并赋值给一个变量;
    • 通过句柄对文件进行操作;
    • 关闭文件;
  • with:自动关闭文件;
    with open('log', 'r') as f:
        ...
  • 文件操作之open()

模式匹配与正则表达式

  • 正则表达式:简称regex,是文本模式的描述方法;
  • 正则表达式匹配步骤:
    • 导入正则表达式模块re
    • re.compile()函数创建一个Regex对象(记得使用原始字符串);
    • Regex对象的search()方法传入想要查找的字符串,返回一个Match对象;
    • 调用Match对象的group()方法,返回实际匹配文本的字符串;
  • 管道:|,用于匹配多个表达式中的一个,匹配多个分组;
  • 问号:?,实现可选匹配;
>>> import re
>>> batRegex = re.compile(r'Bat(wo)?man')
>>> mo1 = batRegex.search('The Adventures of Batman.')
>>> print(mo1.group())
Batman
>>> mo2 = batRegex.search('The Adventures of Batwoman.')
>>> print(mo2.group())
Batwoman
  • 星号:*,匹配零次或多次,即星号之前的分组,可以在文本中出现任意次;
>>> import re
>>> batRegex = re.compile(r'Bat(wo)*man')
>>> mo1 = batRegex.search('The Adventures of Batwowoman')
>>> print(mo1.group())
Batwowoman
  • 加号:+,匹配一次或多次,加号前面的分组必须"至少出现一次”;
>>> import re
>>> batRegex = re.compile(r'Bat(wo)+man')
>>> mo1 = batRegex.search('The Adventures of Batwowoman')
>>> print(mo1.group())
Batwowoman
>>> mo2 = batRegex.search('The Adventures of Batman')
>>> print(mo2 == None)
True
  • 花括号:{ },匹配特定次数;
>>> import re
>>> batRegex = re.compile(r'ha{3}')
>>> mo1 = batRegex.search('hahaha')
>>> print(mo1.group())
hahaha
>>> mo2 = batRegex.search('haha')
>>> print(mo2 == None)
True
  • findall()方法返回结果:

    • 若调用在一个没有分组的正则表达式上,则返回一个匹配字符串的列表,如['123-324-5832', '324-589-0983']
    • 若调用在一个有分组的正则表达式上,则返回一个字符串的元组的列表(每个分组对应一个字符串),如[('123', '453', '4324'), ('343', '654', '3245)]
  • ^xxx:表示字符串必须以xxx开始;
  • xxx$:表示字符串必须以xxx结尾;
  • 绝对路径:从根文件夹开始;
  • 相对路径:相对于程序的当前工作目录;
  • 读写文件的步骤:
    • 调用open()函数,返回一个File对象;
    • 调用File对象的read()write()方法;
    • 调用File对象的close()方法,关闭该文件;
  • 永久删除文件和文件夹:
    • os.unlink(path)删除path处的文件;
    • os.rmdir(path)将删除path处的文件夹,但文件夹必须为空;
    • shutil.rmtree(path)删除path处的文件夹,包含的所有文件和文件夹都会被删除;

调试

  • 反向跟踪:Python遇到错误,就会产生错误信息,这些信息包含了出错信息、导致该错误的代码行号,以及导致该错误的函数调用的序列(调用栈);

欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~

Python知识点总结篇(三)的更多相关文章

  1. Python知识点总结篇(一)

    Python基础 变量 变量类型: 1.数字型 整形:int: 浮点型:float: 布尔型:bool,True和False: 复数型:complex: 2.非数字型 字符串: 列表: 元祖: 字典: ...

  2. 零基础Python知识点回顾(三)

    元组 元组是用圆括号括起来的,其中的元素之间用逗号隔开.(都是英文半角)tuple(元组)跟列表类似是一种序列类型的数据,特点就是其中的元素不能更改 既然是有序的,那么,嘿嘿,不错,它也可以有索引,能 ...

  3. Python知识点总结篇(五)

    软件目录结构规范 目标: 提高可读性: 提高可维护性: 常见结构 Demo/ |-- bin/ #存放项目的一些可执行文件 | |-- demo #可执行程序,启动demo调main.py | |-- ...

  4. python之scrapy篇(三)

    一.创建工程(cmd) scrapy startproject xxxx 二.编写item文件 # -*- coding: utf-8 -*- # Define here the models for ...

  5. Python知识点总结篇(二)

    列表 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加.删除或改 ...

  6. Python知识点总结篇(四)

    递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...

  7. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  8. 第六篇:Python函数进阶篇

    在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点:  一.Python的迭代器 ...

  9. Python知识点汇总

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

随机推荐

  1. 17-网页,网站,微信公众号基础入门(使用Adobe Dreamweaver CS6 制作网页/网站)

    https://www.cnblogs.com/yangfengwu/p/11351182.html https://www.cnblogs.com/yangfengwu/p/11200767.htm ...

  2. python url码转换 chr()码

    爬虫生成带搜索词语的网址 1.字符串转为url编码 import urllib poet_name = "李白" url_code_name = urllib.quote(poet ...

  3. Win10登陆界面卡住,进去后无法打开网络相关的设置,谷歌浏览器无法上网

    今天Win10抽风,进入登录页面输入用户名和密码之后,大约过了10分钟才进入桌面.重启后仍然如此. 经过调查,问题主要出在网络相关模块上,网络无法正常初始化,导致登录一直卡在网络初始化上. 解决方法如 ...

  4. java上传图片并压缩图片大小

    Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...

  5. SNF快速开发平台2020版

    SNF快速开发平台分如下子平台: 1.CS快速开发平台 2.BS快速开发平台 3.H5移动端快速开发平台 4.软件开发机器人平台 配置型开发零编程 SNF快速开发平台是一个比较成熟的.net领域的商业 ...

  6. mqtt概念整理

    运行模式: 服务器: emqx (https://docs.emqx.io/edge/v3/cn/install.html) 协议头字节数: 2个字节 三种消息可能性保障(Qos): Qos0:最多一 ...

  7. layui 复选框checkbox 实现全选全选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 【GMT43智能液晶模块】例程十九:LAN_DHCP实验——动态分配IP地址

    源代码下载链接: 链接:https://pan.baidu.com/s/19Euul9LYFKYdKdXTRBfx5w 提取码:p6k8 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT43 ...

  9. 阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-8 优化Swagger2显示

    左侧的全是英文 忽略api 把HelloController也忽略掉 重启api的服务,刷新页面.只剩下了passport的Controller 给passport接口加上注解. 重启服务,并刷新页面 ...

  10. Android Studio Error:Execution failed for task ':app:compileDebugJavaWithJavac' 根本解决方法

    造成这种异常的原因有很多.具体的还是要去终端编译,查看到底是什么地方出错了,然后具体问题具体分析. 终端进入项目的根目录,然后输入命令 gradlew compileDebugJavaWithJava ...