Python基础
文件操作
一、打开文件
Python中提供一个内置函数 open() 打开文件,并返回文件对象,在文件操作过程都需要使用这个函数,如果该文件无法被打开,则会抛出一个OSError。
使用语法: open(参数1,参数2,参数3)
参数1:文件名
参数2:打开模式
参数3:编码方式(encoding = ‘utf-8’ / encoding = ‘GB2312’)
如果在写文件后,指针放在文件结尾,就无法立即读文件。解决方法是使用seek(0)把指针移到开头。
- seek函数能够帮助我们File Handle,即文件处理。
- 在Python中,我们可以将seek()最简单理解为:移动光标或指针。
- seek(0)将开头作为参考位置, seek(1)将当前作为参考位置, seek(2)将结尾作为参考位置。
- tell()可以查看当前指针位置
file = 'test.txt' # 文件与当前py文件在同一目录下
file2 = r'C:\Users\NBMLK\Desktop\User.txt' # r防止转义
file = open(file,'r',encoding = 'utf-8')
file2 = open(file2,'a+',encoding = 'GB2312')
print(file.read())
file.close() # 文件操作结束,记得关闭文件
file2.writelines(['aaaaaa\n','bbbbbb\n','ccccccccc']) # write写入单行,writelines写入多行
file2.flush() # 保存文件
seek(0) # 添加操作后,指针指向文件结尾,使用seek将指针指回开头
print(file2.read())
file2.close
二、进阶操作
在对文件进行操作时,更推荐使用with语法块。
Python 中的 with 语句用于异常处理,封装了 try…except…finally 编码范式,提高了易用性。
with 语句使代码更清晰、更具可读性, 它简化了文件流等公共资源的管理。
with open(file,'r',encoding = 'utf-8') as f:
print(f.read())
with 语句实现原理建立在上下文管理器之上。
上下文管理器是一个实现 enter 和 exit 方法的类。
使用 with 语句确保在嵌套块的末尾调用 exit 方法。
这个概念类似于 try…finally 块的使用。
路径的处理
python里面的os模块有许多方法可以让我们通过代码实现创建,删除和更改目录,具体如下:
-
os.getcwd():显示当前的工作路径,只具体到路径,不具体到文件
-
os.path.realpath(path):返回path的真实路径,如果参数是:file,就说明是本文件所在的绝对路径,对比二者的区别?
-
os.path.join(a,b):连接两个部分的路径,组成一个完整的路径
-
os.mkdir(路径名字):在某个目录下创建一个新目录
-
os.rmdir(路径名字):删掉一个目录
-
os.listdir():获取当前路径下的目录列表,返回列表格式数据
-
os.path.isdir():判断当前文件是否是目录,返回布尔值
-
os.path.isfile():判断当前文件是否是文件,返回布尔值
-
os.chdir(path):将当前工作目录更改为指定路径
-
os.rename(name,newname):修改文件各字
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 6 18:25:15 2023
@author: NBMLK
"""
import os
import sys
import shutil
import time
# sys.path是python的搜索模块的路径集,用list存放
# 导入的包的搜索路径按sys.path一个一个往下找,如果在这些路径下找不到包,则会报错
# 可以使用append()给他增加要使用的包的路径
for i in sys.path:
print(i)
# os模块:对操作系统进行的一系列动作都在os模块中
# 获取当前工作路径,只具体到路径,不具体到文件名
path = os.getcwd()
print(path)
# 获取当前文件在操作系统中的绝对路径,具体到文件名
# print(__file__)
# 查找指定文件在操作系统中的路径??????
# print(os.path.realpath('PY\test1'))
# 创建目录(文件夹)
# os.mkdir('dir_test')
# 删除目录,如果文件夹不为空,则无法删除
# 报错[WinError 145] The directory is not empty: 'dir_test'
# os.remove('dir_test')
#若文件夹不为空,可以使用shutil内置库递归删除
# shutil.rmtree('dir_test')
# 切换当前工作路径
# os.chdir()
# 修改文件名,注意需要加上后缀名
# os.rename('Path_test.py', 'Path.py')
# 返回上一级的目录??和os.getcwd()不是一样??
dir = __file__
print('__file__是',dir)
print(os.path.dirname(dir))
异常的处理及断言
一、异常类型介绍
异常是一个在程序执行过程中发生的事件,会影响程序的正常执行。一般情况下,在Python无法正常处理程序时,就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时,我们需要捕获处理它,否则程序会终止执行。
在Python中,所有的异常都是派生自BaseException,BaseException是所有异常的基类,下面介绍四种最常见的异常:
-
SystemExit 解释器请求退出
-
KeyboardInterrupt 用户中断执行(通常是ctrl+c)
-
GeneratorExit 生成器(Generator)发生异常来通知退出
-
Exception 常规错误的基类
需要重点掌握的是Exception类,一般因代码引起的错误,是我们可以控制的。Exception类异常类型举例如下: -
AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
-
NameError:试图访问的变量名不存在
-
SyntaxError:语法错误,代码形式错误
-
IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误
-
KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误
二、异常捕获
1、Try / Except语法格式
捕捉异常可以使用Try/Except()语句,如果你不想在异常发生时结束你的程序,只需要在异常发生时用try捕获它,然后使用Except进行处理动作。(注意:Except中指定异常类型,可以指定一个或多个,也可以不指定,不指定时默认捕获所有Exception类型)
Try:
可能出现异常的代码
Except 异常类型:
捕获到异常后的处理方案
上述列子中,因为用户输入了字符串’abc’,而字符串不能用int()转为整型,异常发生,通过Except捕获并输出’出现异常代码’。