python基础知识总结(第五篇):文件操作、异常、模块与包

 声明: 
              1. 本文主要是记录学习之用,自行整理以及方便记忆
              2. 若有错误不当之处, 请指出





系列文章目录

python基础知识总结(第一篇):基础语法

python基础知识总结(第二篇):基础语句(判断语句和循环语句)

python基础知识总结(第三篇):函数

python基础知识总结(第四篇):python数据容器


目录

一、文件操作

1. 文件的读取

(1)文件的打开

(2)文件的读取和关闭

2. 文件的写入和追加

二、异常

1. 异常处理

(1)捕获常规异常

(2)捕获指定异常

(3)捕获多个异常

(4)捕获所有异常

2. 异常的else

3. 异常的finally

4. 异常的传递

三、模块

1. 导入内置模块

2. 自定义模块

四、包


一、文件操作

1. 文件的读取

(1)文件的打开

语法:open(name, mode, encoding)

说明:

  • name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
  • mode:设置打开文件的模式(访问模式):只读、写入、追加等。
  • encoding:编码格式(推荐使用UTF-8)

示例:f = open('python.txt', 'r', encoding=”UTF-8)

注意:encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指

mode访问模式
模式可做操作若文件不存在是否覆盖
r只能读报错-
r+可读可写报错
w只能写创建
w+可读可写创建
a只能写创建否,追加写
a+可读可写创建否,追加写
(2)文件的读取和关闭

操作功能
文件对象 = open(file, mode, encoding)打开文件获得文件对象
文件对象.read(num)

读取指定长度字节(单位是字节)

不指定num读取文件全部

文件对象.readline()读取一行
文件对象.readlines()读取全部行,得到列表
for line in 文件对象for循环文件行,一次循环得到一行数据
文件对象.close()关闭文件对象
with open() as f:通过with open语法打开文件,可以自动关闭

2. 文件的写入和追加

语法:文件对象.write(内容)

注意:

  • 追加的方式和写入的一致
  • 文件操作.flush(),刷新内容到硬盘中
  • close()方法,带有flush()方法的功能
  • 可以使用”\n”来写出换行符

二、异常

异常:就是程序运行的过程中出现了错误,即报错

1. 异常处理

(1)捕获常规异常

语法如下

try:

    可能发生错误的代码

except:

    如果出现异常执行的代码
(2)捕获指定异常

语法如下

try:

    print(name)

except NameError as e:

    print('name变量名称未定义错误')

说明:

  • 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
  • 一般try下方只放一行尝试执行的代码。
(3)捕获多个异常

语法如下

try:
    print(1/0)
except (NameError, ZeroDivisionError):
    print('ZeroDivision错误...')
(4)捕获所有异常

语法如下

try:
    print(name)
except Exception as e:
    print(e)

2. 异常的else

else表示的是如果没有异常要执行的代码。

try:
    print(1)
except Exception as e:
    print(e)
else:
    print('我是else,是没有异常的时候执行的代码')

3. 异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件

try:
    f = open('test.txt', 'r')
except Exception as e:
    f = open('test.txt', 'w')
else:
    print('没有异常,真开心')
finally:
    f.close()

4. 异常的传递

当函数func01中发生异常, 并且没有捕获处理这个异常的时候, 异常 会传递到函数func02, 当func02也没有捕获处理这个异常的时候 main函数会捕获这个异常,  这就是异常的传递性.

# 定义一个出现异常的方法
def func1():
    print("func1 开始执行")
    num = 1 / 0     # 肯定有异常,除以0的异常
    print("func1 结束执行")
# 定义一个无异常的方法,调用上面的方法

def func2():
    print("func2 开始执行")
    func1()
    print("func2 结束执行")
# 定义一个方法,调用上面的方法

def main():
    try:
        func2()
    except Exception as e:
        print(f"出现异常了,异常的信息是:{e}")

main()

运行结果:

三、模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾.  模块能定义函数,类和变量,模块里也能包含可执行的代码.

1. 导入内置模块

语法:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

2. 自定义模块

每个Python文件都可以作为一个模块,模块的名字就是文件的名字. 也就是说自定义模块名必须要符合标识符命名规则

(1)测试模块(__main__)

def test(a, b):
    print(a + b)

# 只在当前文件中调用该函数,其他导入的文件内不符合该条件,则不执行test函数调用
if __name__ == '__main__':
    test (1, 1)

(2)__all__变量

如果一个模块文件中有`__all__`变量,当使用`from xxx import *`导入时,只能导入这个列表中的元素

四、包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件 从逻辑上看,包的本质依然是模块

Pycharm中创建包的基本步骤:

[New]   ->   [Python Package]  ->  输入包名  ->  [OK]   ->  新建功能模块

注意:新建包后,包内部会自动创建`__init__.py`文件,这个文件控制着包的导入行为

导入包

  • 方法一:import 包名.模块名
  • 方法二:from 包名 import *

方法二说明

  • 必须在`__init__.py`文件中添加`__all__ = []`,控制允许导入的模块列表
  • __all__针对的是 ’ from ... import * ‘ 这种方式 对 ‘ import xxx ’ 这种方式无效

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值