Python笔记目录

一、os模块的使用-基础操作

1.os:全称是 operating system,可以通过os模块方便的使用操作系统相关的功能
2.常用基础操作
os.name:当前操作系统的名字,windows用’nt’表示,linux用’posix’表示
os.sep:当前操作系统的路径分隔符,windows用’\\‘表示,linux用’/'表示
os.getcwd:获取当前工作目录
os.environ/os.getenv:获取环境变量值
os.listdir:获取指定路径下的所有文件和目录的名字,返回数据列表

二、os模块的使用-目录创建和删除

1.os.mkdir方法:可以创建目录,但是只能创建路径中最后一个目录,它要求之前的目录都必须存在
2.os.makedirs方法:可以创建目录,可以依次创建路径中不存在的目录
3.对于mkdir和makedirs方法,如果要创建的目录已经存在,则程序会抛出FileExistsError异常,对于mkdir方法,如果之前的目录不存在,会抛出FileNotFouondError异常
4.os.rmdir方法:可以删除指定路径的最后一层目录,但是只能删除空目录,如果待删除目录不空,程序会抛出OSError异常
5.os.removedirs方法:可以删除指定路径的多层目录,和rmdir函数相同,只能删除空目录,不同在于,rmovedirs方法从最后一层往前删除,直到遇到不为空的目录为止,停止删除
6.对于rmdir和removedirs方法,如果要删除的目录不存在,则程序会抛出FileNotFoundError异常

三、os模块的使用-获取绝对路径,路径分离和连接

1.相对路径:相对于当前工作目录指定的路径
2.绝对路径:从最顶层目录开始所给出的完整路径
3.'.‘表示当前目录,’…'表示上一层目录
4.编写程序时应该尽量使用相对路径,这样程序不依赖具体的顶层目录,从而具备良好的移植性
4.os.path.abspath方法:可以获取指定相对路径的绝对路径
5.os.path.dirname方法:可以获取文件所在目录的路径
6.os.path.basename方法:可以获取指定路径的文件
7.os.path.split方法:可以将指定路径分割成路径名和最后的目录或文件名
8.os.path.splitext方法:可以将指定路径分割成路径和文件扩展名
9.os.path,join方法:可以将多个字符串用系统分隔符连接起来,形成新的路径

四、os模块的使用-条件判断

1.os.path.isfile方法:可以判断指定路径目标是否为文件
2.os.path.isdir方法:可以判断指定路径目标是否为目录
3.os.path.exists方法:可以判断指定路径是否存在
4.os.path.isabs方法:可以判断指定路径是否为绝对路径

五、文件打开和关闭

1.程序运行时,数据都存储在内存中,当程序执行完毕后,内存中的数据将丢失。文件就是用来长期保存数据的。
2.open方法:可以打开一个文件,语法格式为:open(filename,mode=‘r’),其中,filename是要打开文件的路径,mode是打开文件的方法,默认’r’表示以只读方法打开文件
3.常用的打开文件方法:
‘r’:以只读方法打开文件,不允许写数据(read)
‘w’:以只写方法打开文件,不允许读数据。文件已存在内容时,会先清空文件,文件不存在时,会创建文件(write)
‘a’:以追加写方式打开文件,不允许读数据。文件已存在内容时,会在内容末尾追加内容,文件不存在时,会创建文件(append)
‘b’:以二进制方式打开文件(binary)
‘t’:以文本方式打开文件(text)
‘+’:以读写方式打开文件,可读可写
4.文件中存在一份文件指针,指向当前要读/写的数据位置
5.打开文件的方式可以进行组成:
‘r+’/‘rt+’:以文本方式打开文件,可读可写,文件不存在时会报错
‘w+’/‘wt+’:以文本方法打开文件,可读可写,文件已存在内容时,会先清空文件,文件不存在时,会创建文件
‘a+’/‘at+’:以文本,追加方式打开文件,可读可写,文件已存在内容时,会在内容末尾追加内容,文件不存在时,会创建文件
‘rb+’:与’r+'类似,只是用二进制打开文件
‘wb+’:与’w+'类似,只是用二进制打开文件
‘ab+’:与’a+'类似,只是用二进制打开文件
6.close方法:可以用来关闭文件,当使用open方法打开文件后,必须使用close方法将文件关闭,来保证文件资源的及时释放
7.with语句:可以用来让系统在文件操作完毕后自动关闭文件

六、文件对象的write和read方法

1.write方法:可以用来将字符串写入文件中,语法格式是 write(str),str是待写入的字符串,函数返回写入到文件的字节数
2.write方法写入字符串时,不会自动添加换行符,如果需要加换行的话,需要人为添加换行符’\n’
3.read方法:可以用来从文件中读取字符串,语法格式是 read(n=-1),n指定了要读取的字节数,默认-1表示一次读取文件的所有内容,函数返回从文件读取的内容

七、文件对象的readline、readlines和seek方法

1.readline方法:可以每次从文件中读取一行数据
2.readlines方法:可以按行从文件读取所有数据,函数返回按行读取的数据列表,使用list(file),也可以实现和readlines方法相同的效果
3.seek方法:可以移动文件指针,实现文件的随机读写。语法格式为:seek(pos,whence=0),其中pos是指针要移动的字节数,whence是参照位置,默认0表示以文件开头为参照位置,1表示以当前指针为参照位置,2表示以文件尾为参照位置
4.tell方法:可以获取当前文件指针的位置
5.文件的读写方式分为:顺序读写和随机读写
顺序读写:按照从开头到结尾的顺序依次对数据读写
随机读写:可以直接让文件指针指向某个位置,并对该位置的数据进行读写。因为这种方式没有固定顺序的,能做到随机指定位置操作数据,所以叫做随机读写
6.当以文本方式打开文件后,只支持以文件开头位置作为参照位置,进行文件指针的移动。当以二进制方式打开文件后,可以支持全部的参照位置。所以通过seek方法实现的随机读写,主要用于二进制文件

八、一维数据和二维数据

1.一维数据:元素的值只受一种因素影响。对于一维有序数据,可以用列表存储,对于一维无序数据,可以用集合存储
2.二维数据:元素的值受两种因素影响。可以用二维列表存储二维数据

九、CSV操作一维、二维数据

1.CSV:Comma-Separated Values,意思是用逗号分开的值,它是一种国际通用的一维,二维数据存储格式,其对应的文件扩展名为.csv,可以用excel软件直接打开
2.csv文件中每一行对应一个一维数据,一维数据之间用英文半角逗号分隔,逗号两边不需要空格,对于缺失元素,也要保留逗号,使得其他元素的位置可以一一对应
3.csv文件的第一行可以是列标题,也可以直接存储数据,即没有列标题
4.csv.writer方法:可以生成一个writer对象,使用该对象可以将数据以逗号分隔的形式写入csv文件中,语法格式为 writer(csvfile),其中csvfile是一个具有write方法的对象,如果将文件对象传入writer方法,则使用open生成文件对象时要添上“newline = ‘’ ”,避免换行符的转换问题
5.writer.writerow方法:向csv文件写入一行数据,语法格式为 writerow(row),其中row是要写入csv文件的一行数据
6.writer.writerows方法:向csv文件写入多行数据,语法格式为 writerows(rows),其中rows是要写入csv文件的多行数据
7.csv.reader方法:可以生成一个reader对象,使用该对象可以将以逗号分隔的数据从csv文件读出来,语法格式为:reader(csvfile),其中csvfile是一个迭代器,同样的,使用文件对象实参时,也需要在open方法加上“newline = ‘’ ”

十、异常的定义和分类

1.异常是指:因程序运行时发生错误而产生的信号
2.如果程序不对产生的异常信号进行处理,程序就会抛出异常并停止程序运行。为了保证程序的稳定性和容错性,就需要在程序中捕获可能的异常并对其进行处理,使得程序不会因为异常而终止
3.程序异常可以分为:语法异常和逻辑异常
语法异常:编写的代码不符号编程语言的语法要求
逻辑异常:编写的代码符合语法,但是不被系统或当前环境支持
4.常见的逻辑异常:
AssertionError:assert语句失败
AttributeError:访问一个属性失败
ImportError:导入一个模块失败
IndexError:访问序列数据的下标越界
KeyError:访问一个映射对象(如字典)中不存在的键
MemoryError:当一个操作使内存耗尽
NameError:当引用一个不存在的标识符
OverflowError:算术运算结果超出表示范围
RecursionError:超过最大递归深度
RuntimeError:产生其他所有类别以外的错误
StopIteration:迭代器中没有下一个可获取的元素
TabError:使用不一致的缩进方式
TypeError:传给操作或函数的对象类型不符合要求
UnboundLocalError:引用未赋值的局部变量
ValueError:内置操作或函数接收到的参数具有正确类型但不正确值
ZeroDivisionError:除法或求模运算的第2个操作数为0
FileNotFoundError:要访问的文件或目录不存在
FileExistsError:要创建的文件或目录已存在

十一、异常处理-try except

1.try语句包括待捕获异常的执行语句,except语句根据异常类型捕获匹配的异常进行处理
2.如果没有异常,except语句都不会执行,如果存在异常,except语句捕获成功,则执行匹配的except语句,程序正常向下执行,如果存在异常,except语句捕获失败,则程序向外层抛出异常,如果外层语句无法解决,则程序抛出异常并停止运行
3.一个except语句可以同时负责捕获多个异常,其参数可以是一个异常元组

十二、异常处理-else,finally和raise

1.else语句:是try-except语句的一个可选项,如果try语句没有异常,则执行else语句,否则不执行
2.finally语句:是try-except语句的一个可选项,无论try语句有没有异常,finally语句都会执行
3.raise关键字:可以自行抛出异常,不必等待系统自动产生异常

十三、异常处理-断言和自定义异常

1.assert:断言,可以用来判断一个条件是否成立,如果成立,程序继续执行,如果不成立,程序抛出AssertionError异常
2.自定义异常:以BaseException类为父类创建自定义异常类

Python-IO编程和异常相关推荐

  1. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  2. python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03

    python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...

  3. python IO编程

    1.文件读写 # IO编程 # 文件读写f = open('text.txt','r') # 标示符'r'表示读 str = f.read() print(str) f.close() 如果文件不存在 ...

  4. Python IO编程-组织文件

    对于日常中遇到的批量任务,有些可以通过请求python完成自动化,我非常渴望拥有这些能力,在去年学习了python读写文件之后,我马上迫不及待的开始学习'组织文件',经过学习,我发现python组织文 ...

  5. python IO编程-StringIO和BytesIO

    链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319187857 ...

  6. Python IO编程——文件读写

    1.1   文件读写 1.1.1   读文件 >>> f = open('/root/python/hello.py','r')    #标识符r表示读 >>> f ...

  7. Python IO编程详解

    一.文件系统操作 1.os.os.path和pathlib的对比 Python中处理文件路径和文件系统操作的传统方式,是通过os和os.path模块中的函数来完成的.这些函数完全能够胜任需求,但往往会 ...

  8. python学习——IO编程——文件读写

    python--IO编程--文件读写 IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动.Input Stream就是数据从外面(磁盘.网络 ...

  9. 入门机器学习(二十)--编程作业-异常检测和推荐系统(Python实现)

    编程作业–异常检测和推荐系统 在本练习中,我们将使用高斯模型实现异常检测算法,并将其应用于检测网络上的故障服务器. 我们还将看到如何使用协作过滤构建推荐系统,并将其应用于电影推荐数据集. Anomal ...

  10. python 异步io_python异步IO编程(一)

    python异步IO编程(一) 基础概念 异步IO (async IO):一种由多种语言实现的与语言无关的范例(或模型). asyncio:Python 3.4版本引入的标准库,直接内置了对异步IO的 ...

最新文章

  1. 芬兰开放“线上AI速成班”课程,全球网民均可免费观看
  2. Ubuntu Server 16.04服务器版配置图解教程06 - 安装MySql
  3. awk 分解行、字段
  4. 如何去除TD之间的空隙
  5. Docker自动构建开发测试平台
  6. mysql select符合查询_MySQL SELECT 联合查询
  7. Spring4.0编程式定时任务配置
  8. android中fragment如何保存edittext文本,如何在Android中使用DialogFragment进行文本输入?...
  9. 为什么git的“ pull request”不称为“ push request”?
  10. 设某一机器由n个部件组成_组成原理
  11. Struts2文件配置 登陆页面
  12. 左对齐 latex_初学者关于Latex的一些总结(持续更新中...)
  13. CarMaker与NS3联合仿真平台--安装
  14. html网页正确代码,html简单网页代码(html代码格式开头)
  15. vue 图片放大查看器
  16. 软件使用疑难杂症解决记录篇——科瑞工程量计算簿
  17. php 改变图片大小,php修改图片大小的方法
  18. 速成应用免费教你如何制作开发预约类型的美容美发行业微信小程序「教程」
  19. 【转帖】lmbench的简单使用
  20. 甲骨文数据库购买的价格(二)

热门文章

  1. 手把手教你使用Python抓取QQ音乐数据!
  2. 【求助】winfrom怎么获取视频当前播放时间
  3. android实现音乐播放器(进度条)
  4. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)
  5. C2D 代码转设计稿是怎么实现的?
  6. HashMap是如何遍历的
  7. [Delphi] 多线程编程
  8. 国际空间站ISS SSTV 2018 OCT
  9. CRUSH算法 - 可控、可伸缩、分布式地归置多副本数据
  10. 最新短网址生成api接口(t.cn、url.cn短链接生成)