博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python知识点总结篇(三)
阅读量:6208 次
发布时间:2019-06-21

本文共 1777 字,大约阅读时间需要 5 分钟。

文件操作

  • 对文件操作流程
    • 打开文件,得到文件句柄并赋值给一个变量;
    • 通过句柄对文件进行操作;
    • 关闭文件;
  • 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://juejin.im/post/5bb1d0a6f265da0a8f35d5b9

你可能感兴趣的文章
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
Google API设计指南-资源名称
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
AlphaGo Zero用它来调参?【高斯过程】到底有何过人之处?
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
android studio :cannot resolve symbol R
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
物联网商机迸发 LPWAN芯片现身 本文转自d1net(转载)
查看>>
Cisco Nexus 1000V
查看>>
剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?
查看>>