盏茶python(七) 文件、异常和模块

在这里插入图片描述

盏茶python(一) 语言特性及环境配置
盏茶python(二) 基本数据类型
盏茶python(三) 组合数据类型
盏茶python(四) 控制流
盏茶python(五) 函数
盏茶python(六) 类
盏茶python(七) 文件、异常和模块
本节我们将要讲解python关于文件使用、异常处理及模块化的部分内容。
在这里插入图片描述

1.文件读写

在实际使用中,大部分的信息都是通过文件的交互完成的,掌握文件的使用非常重要

1.1 文件的打开

文件的打开形式:

with open("文件路径", “打开模式”, encoding="字符编码方式") as f:
	代码块

使用with的好处是当执行完毕后,自动对文件进行close操作,可以看到在打开文件的过程中,有三个重要元素,分别是文件路径,打开模式及字符编码方式。
(1)文件路径
文件路径分为绝对路径和相对路径,相对路径是指程序和文件在同一文件夹下的默认路径,可以进行简化,举例如下:

# 绝对路径
"c://test.txt"
"c:\test.txt"
#相对路径
"test.txt"

(2)打开模式
打开模式只打开文件是读取还是写入等方法,具体举例如下:

"r" 只读模式,如文件不存在,报错
"w" 覆盖写模式,如文件不存在,则创建文件,否则覆盖原文件
"x" 创建写模式,如文件不存在,则创建,如文件存在,报错
"a" 追加写模式,如文件不存在,则创建文件,否则在源文件后追加内容
"b" 二进制文件模式,不能单独使用,需要配合使用如"rb", "wb", "ab"等方法,且该模式不需要指定encoding
"t" 文本文件模式,默认值,需配合使用,如"rt", "wt", "at"等,可以简写不适用t
“+” 与"r", "w", "x", "a"配合使用,在原基础上,增加读写功能

注意若打开模式缺省,则默认为只读模式
(3)字符编码
字符编码中常用的是utf-8和gbk编码方式,其中utf-8包含全世界所有国家需要用到的字符,gbk编码方式用于专门解决中午呢编码问题。
注意:在windows系统下,默认设定为gbk编码方式。

1.2 文件的打开

文件的打开形式:

with open("文件路径", “打开模式”, encoding="字符编码方式") as f:
	# 读取整个内容
	text = f.read();
	# 逐行进行读取
	text = f.readline();
	# 读入所有行,以每行为元素行为一个列表
	text = f.readlines();

当文件比较大时,使用read()和readlines()占用内存较大,使用一个文件作为可迭代对象

with open("文件路径", “打开模式”, encoding="字符编码方式") as f:
	for text in f:
		print(text)
1.2 文件的写入

文件的打开形式:

with open("文件路径", “打开模式”, encoding="字符编码方式") as f:
	f.write("something")
	ls = ["1", "2"]
	# 将一个元素为字符串的列表写入文件
	f.writelines()
1.3 数据的存储与读取

常用的两种数据存储结构csv和json
对于csv格式,可以用excel打开,读取代码如下:

with open("文件路径", “打开模式”, encoding="字符编码方式") as f:
	ls = []
	# 逐行读取
	for line in f:
		# 去掉每行的换行符,用","进行分割
		ls.append(line.strip("\n").split(","))

对于json格式,常被用来存储字典类型,读写代码如下:

import json
score = {"Peter": 100}
# 写入
# indent表示字符串换行+缩进
json.dump(score, f, indent=4. ensure_ascii=False)
# 读取
with open("文件路径", “打开模式”, encoding="字符编码方式") as f:
	score = json.load(f)
	for k, v in score.items():
		print(k, v)

2.异常处理

在程序执行的过程中,常见的异常报错情况有:
除0报错——ZeroDivision
找不到可读文件——FileNotFoundError
值错误——ValueError
索引错误——IndexError
类型错误——TypeError
异常处理可以提高程序的稳定性和可读性,常见的异常处理方法:

try:
	代码块
except 错误方法:
	代码块

表示当try内的代码执行时,except不触发,如果try内的代码发生错误,则出发except中的代码块。
在错误方法中可以填入前面介绍过的所有异常情况,且有Exception作为任何报错的错误方法。
通过Exception引入一种捕获异常方法的方式:

try:
	代码块
except Exception as e:
	print(e)

在引入其他异常处理方法:
当try模块执行,else模块也会执行

try:
	代码块
except 错误方法:
	代码块
else:
	代码块

无论try模块是否执行,finally模块也会执行

try:
	代码块
except 错误方法:
	代码块
finally:
	代码块
3.模块介绍

模块是指已经被封装好,无需在二次开发,声明导入后可以直接使用的内容。

3.1 广义模块分类

时间库time
随即库random
容器数据类型collection
迭代器函数itertools

3.2 第三方库

数据分析numpy、pandas
数据可视化matplotlib
机器学习scikit-learn
深度学习tensorflow

3.3 自定义文件

单独py文件
包-多个py文件
当文件夹内有多个py文件,加入__int__.py文件即可

3.4 模块导入方法

导入方式如下:

import 模块名
from 模块性 import 类名或函数名
# 导入所有类和函数
from 模块性 import *
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值