os模块相关函数及其用法&文件可用相关函数:
os.getcwd() | 获取当前工作目录 |
os.sep | 查看分隔符(Windows:"/",Linux:"\\") |
os.name | 查看当前操作系统的名字(Windows:nt,Linux:posix) |
os.environ([key]) | 获取环境变量值 |
os.mkdir(path) | 创建目录(只能创建最后一个目录,前面的目录必须都存在) |
os.mkdirs(path) | 根据指定路径创建目录,可以将不存在的目录依次创建(若目录存在则会报错) |
os.rmdir(path) | 只用于删除空目录 |
os.listdir(path='') | 获取指定路径下的所有文件和目录的名字(path:路径,默认为'.':当前目录) |
os.removedirs(path) | 只用于删除空目录,从指定路径的最后一个目录逐层向前删除(用于多层空目录·) |
os.path.abspath(path) | 获取指定相对路径path的绝对路径 |
os.path.dirname(path) | 返回path中去除文件名后的路径(文件所在目录路径) |
os.path.basename(path) | 返回path中的文件名 |
os.path.split(path) | 将指定路径分解成路径名和目录/文件名两部分(若指定路径中不包含文件名,则会将指定路径分成两部分:最后一个目录名和由前面所有目录组成的路径名)路径 |
os.path.splitext(path) | 将指定路径分解成一个元组(root,ext)(ext:文件扩展名,root是扩展名前面的内容) |
os.path.join(path,*paths) | 各参数用系统路径分隔符(os.sep)连接得到的结果返回 |
os.path.isfile(path) | 判断path指定的目标是否是文件(返回值为布尔类型) |
os.path.isdir(path) | 判断path指定的目标是否是目录(返回值为布尔类型) |
os.path.exists(path) | 判断path指定的路径是否存在(返回值为布尔类型) |
os.path.isabs(path) | 判断path指定的路径是否为绝对路径(返回值为布尔类型) |
文件相关可用函数:
f.closed | 返回布尔类型,判断文件是否关闭,关闭返回True |
f.write() | 返回值为写入到文件中的字符数(包括'\n') |
with语句打开文件 | 可让系统自动关闭文件 |
文件打开方式:a | 文件指针指向文件尾(追加) |
文件打开方式:w | 会清空当前文件(写入) |
异常处理
1.基本格式
"""
try:
<语句块1>
expect[异常类型1]:
<异常类型1的处理语句块>
expect[异常类型2]:
<异常类型2的处理语句块>
...
expect[异常类型N]:
<异常类型N的处理语句块>
else:
<没有捕获异常执行的语句>
finally:
<无论是否有异常都执行的语句>
"""
>执行try子句的语句块,如果没有异常发生,则except子句不被执行
>若有异常发生,则根据异常类型匹配每一个except关键字后面的异常名,并执行匹配的那个子句的处理语句块
>若异常与所有的except子句都不匹配,则传递给更外层的try except语句
>若异常无法被任何except子句处理,则程序抛出异常并停止运行
>except子句后面的异常类型,既可以是单个异常类型(“except ValueError:”)也可以是由多个异常类型组成的元组(“except (TypeError,ZeroDivisioError):”)还可以为空,即表示捕获所有异常
>直接使用raise抛出异常,然后用except接收异常
for i in range(2): # 循环2次try:
try:
num = int(input('请输入一个数字:'))
if num == 0:
raise ValueError('输入数字不能为0!')
print(10 / num)
except ValueError as e:
print('值错误:', e)
其中e接收抛出异常所携带的信息(输入数字不能为0!)
>断言(assert)使用assert可以判断一个条件是否成立,如果成立则继续执行后面的语句;如果不成立则会引发AssertionError异常
for i in range(2): # 循环2次try:
try:
num = int(input('请输入一个数字︰'))
assert num != 0
print(10 / num)
except AssertionError:
print('断言失败!')
>自定义异常:(以BaseException为父类创建一个子类,需要定义__init__构造方法以及__str__方法输出报错信息)
class FileNameError(Exception):
def __init__(self, err="仅支持jpg/png/jpeg格式"):
self.err = err
def __str__(self):
return self.err
if __name__ == '__main__':
file_name = input("请输入上传文件标识:")
try:
if file_name.split(".")[-1] in ['jpg', 'png', 'jpeg']:
print("上传成功")
else:
raise FileNameError
except Exception as err:
print(err)
tips:
"""
磁盘上存储的内容,以二进制或ASCII码的形式存储
ASCII码
GBK(GB2312升级版)
GB2312(针对中文的编码方式)
Unicode(全球统一编码方式)
UTF-8(Unicode升级版)
>推荐书写方式:
with open("文件实验.txt", "r+") as fp:
fp.write("54687566+4+6")
print(fp.read())
>路径书写
①在绝对路径前添加字符r
②采用反斜杠(\\)的方式书写路径
③采用左斜杠(/)
>去除空行:strip()"txt默认末尾设置\n"
>文件读取:
read():从头读到尾,指针放到最后
readline():读取一行,返回值为str
readlines():读取全部,返回值为字符串列表(占用中间缓存,不推荐)
>文件写入:
writelines():传入的是字符串列表
>seek(右移的字节数,[0:文件头,1:当前位置(仅支持二进制文件),2:最后(仅支持二进制文件)])设置指针位置
>tell 获取当前指针位置
>>异常处理(所有异常类的父类:BaseException,语言异常类的父类:Exception)
Ctrl+C 终止执行(KeyboardInterrupt)
>使用assert【断言:assert 逻辑表达式[,异常信息]】可以判断一个条件是否成立,如果成立则继续执行后面的语句;如果不成立则会引发AssertionError异常
>raise抛出异常
raise 异常类的类对象
"""