当前位置: 首页 > news >正文

Python知识点总结篇(三)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

文件操作

  • 对文件操作流程
    • 打开文件,得到文件句柄并赋值给一个变量;
    • 通过句柄对文件进行操作;
    • 关闭文件;
  • 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遇到错误,就会产生错误信息,这些信息包含了出错信息、导致该错误的代码行号,以及导致该错误的函数调用的序列(调用栈);

转载于:https://my.oschina.net/cunyu1943/blog/2222536

相关文章:

  • OSChina 周五乱弹 —— 三口气印度史(3)
  • linux文件的3个时间和7种文件类型
  • 域名被墙怎么办?域名被墙案例-解决办法
  • Grid Layout
  • 首屏时间从12.67s到1.06s,我是如何做到的?
  • Fabric遇到问题和解决方法总结
  • 如何在Pycharm中自动添加时间日期、作者等信息
  • vc枚举本机端口信息
  • 读ant design设计语言 记录
  • BZOJ[Usaco2017 Jan]Promotion Counting——线段树合并
  • Bokeh中数据的添加、修改和筛选 | Bokeh 小册子
  • 2018-2019-1 20165226 《信息安全系统设计基础》第3周学习总结
  • Spring boot初体验
  • Angular2入门教程-2 实现TodoList App
  • 3、桶排序
  • hexo+github搭建个人博客
  • 《剑指offer》分解让复杂问题更简单
  • Consul Config 使用Git做版本控制的实现
  • Docker入门(二) - Dockerfile
  • ES6--对象的扩展
  • flask接收请求并推入栈
  • Hibernate最全面试题
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java小白进阶笔记(3)-初级面向对象
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • React Transition Group -- Transition 组件
  • React中的“虫洞”——Context
  • Spring核心 Bean的高级装配
  • Sublime text 3 3103 注册码
  • win10下安装mysql5.7
  • 第十八天-企业应用架构模式-基本模式
  • 订阅Forge Viewer所有的事件
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 七牛云假注销小指南
  • 实习面试笔记
  • 小而合理的前端理论:rscss和rsjs
  • 一文看透浏览器架构
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (AngularJS)Angular 控制器之间通信初探
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Mysql的优化设置
  • (转)大型网站架构演变和知识体系
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 设置默认首页
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET 中创建支持集合初始化器的类型
  • ::前边啥也没有
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略