IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python中读写文件、异常和异常处理、模块和包 -> 正文阅读

[Python知识库]Python中读写文件、异常和异常处理、模块和包

目录

1.读写文件

1.1 写一个文本文件text:内容为西安培华学院,读取文本文件的内容,复制这个文件text,拷贝为text2

1.2 找一张图片,复制这个图片到copy.jpg

1.3 给定一个列表["string1", "string2", "string3"],将列表内容写入文件,每一个元素一行

2. 异常

2.1 异常的完整格式,以及每个部分的意思

try/except

try/except...else

try-finally 语句

2.2 常遇见的>=5种异常的处理

2.3 以及用异常处理来进行读写文件的文件关闭

2.4 如何主动抛出异常

3.模块和包

3.1 什么叫模块?

3.2 如何导入模块,如何导入模块中的具体内容

3.3 import语句的实质是什么?

3.4 什么是包,包和目录的区别,__init__.py的作用


1.读写文件

文件基本操作:open、close、read、write

文件指针 标记 从哪个位置开始读取数据

第一次打开 文件时,通常 文件指针会指向文件的开始位置

当执行了read方法后,文件指针会移动到读取内容的末尾

默认情况下会移动到 文件末尾

1.1 写一个文本文件text:内容为西安培华学院,读取文本文件的内容,复制这个文件text,拷贝为text2

"""
  写一个文本文件text:内容为西安培华学院
  读取文本文件的内容
  复制这个文件text,拷贝为text2
"""
str_data = "西安培华学院"
data1 = open('text', 'w', encoding='UTF-8')
# 以写的方式打开并创建一个text文件
result1 = data1.write(str_data)
data1.close()
data2 = open('text', 'r', encoding='UTF-8')
# 以读的方式打开text文件
result2 = data2.read()
print(result2)
data2.close()
with open('text2', 'w', encoding='UTF-8') as data3:
    # 将读的text文件的内容写入text2文件中
    data3.write(result2)

1.2 找一张图片,复制这个图片到copy.jpg

"""
找一张图片,复制这个图片到copy.jpg
在这里我们使用手动关闭文件的方式操作,注意照片需要使用对二进制或字节的操作
"""
data = open('影哨.jpg', 'rb')
result = data.read()
data.close()
data2 = open('copy.jpg', 'wb')
result2 = data2.write(result)
data2.close()

1.3 给定一个列表["string1", "string2", "string3"],将列表内容写入文件,每一个元素一行

"""
给定一个列表["string1", "string2", "string3"]
将列表内容写入文件,每一个元素一行
"""
list_data = ["string1", "string2", "string3"]
data = '\n'.join(list_data)
with open('text3', 'wt', newline='') as file_obj:
    file_obj.writelines(data)

2. 异常

即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

2.1 异常的完整格式,以及每个部分的意思

try/except

异常捕捉可以使用?try/except?语句。

try/except...else

try/except?语句还有一个可选的?else?子句,如果使用这个子句,那么必须放在所有的 except 子句之后。

else 子句将在 try 子句没有发生任何异常的时候执行。

try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码。

Python 使用 raise 语句抛出一个指定的异常。

raise语法格式如下:

raise [Exception [, args [, traceback]]]

2.2 常遇见的>=5种异常的处理

try:
    1 + '1'
    1 + 1
except ZeroDivisionError:
    print('ZeroDivisionError')
except IndexError:
    print('IndexError')
except KeyError:
    print('KeyError')
except ValueError:
    print('ValueError')
except Exception:
    print('最后捕获')
else:
    print(1+1)
finally:
    print('Finally')
 
 
#执行结果        由于在前四次中未能捕获异常,在第五次捕获到异常
最后捕获
Finally
 
进程已结束,退出代码0

2.3 以及用异常处理来进行读写文件的文件关闭

try:
    file_obj = open("1.txt", "w")
    file_obj.write("123")
    1 / 0
except:
    print("处理异常")
finally:
    file_obj.close()
    print("Finally")
 
#执行结果
处理异常
Finally
 
进程已结束,退出代码0

2.4 如何主动抛出异常

使用raise可以强制抛出一个异常,当try中语句可以正常执行时,我们可以使用raise强制抛出一个我们想要处理的异常类型,然后在except中捕获去处理异常。

try:
    1
    raise IndexError
except IndexError:
    print("Handle Index Error")
 
#执行结果
Handle Index Error
 
进程已结束,退出代码0

3.模块和包

3.1 什么叫模块?

退出 Python 解释器后,再次进入时,之前在 Python 解释器中定义的函数和变量就丢失了。因此,编写较长程序时,建议用文本编辑器代替解释器,执行文件中的输入内容,这就是编写脚本。随着程序越来越长,为了方便维护,最好把脚本拆分成多个文件。编写脚本还有一个好处,不同程序调用同一个函数时,不用每次把函数复制到各个程序。

为实现这些需求,Python 把各种定义存入一个文件,在脚本或解释器的交互式实例中使用。这个文件就是 模块 ;模块中的定义可以 导入 到其他模块或 主 模块(在顶层和计算器模式下,执行脚本中可访问的变量集)。

模块是包含 Python 定义和语句的文件。其文件名是模块名加后缀名 .py 。在模块内部,通过全局变量 __name__ 可以获取模块名(即字符串)。

3.2 如何导入模块,如何导入模块中的具体内容

导入模块的语法:

import module_name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#import ?模块名

import module_name1, module_name2 ? ? ? ? #import ?模块1,模块2...

如果你要调用模块中内容,怎么调用

module_name.变量/函数/类 ? ? ? ? ? ? ? ? ? ? ? ? ? #模块名.变量/函数/类?

module_name.function_name() ? ? ? ? ? ? ? ? ? ?#从module_name模块中调用function_name()函数 ? ?

from module_name import function_name ??

直接调用function_name

from module_name import * (一般情况不推荐使用)

*: 所有, 但是还是有限制

导入所有不以下划线(_)开头的名称

import sys
sys.audit()

3.3 import语句的实质是什么?

python中import的实质相当于把被导入的模块执行一遍,此时我们可以在主模块中调用hct模块中的语句.相当于先把hct模块执行一遍,然后调用。

import hct
print(hct.list_data)
 
#hct模块中的语句
list_data = [1, 2, 3]
print('111')
print(list_data)
 
#执行结果
111
[1, 2, 3]
[1, 2, 3]
 
进程已结束,退出代码0

3.4 什么是包,包和目录的区别,__init__.py的作用

包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。

比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。

就好像使用模块的时候,你不用担心不同模块之间的全局变量相互影响一样,采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。

这样不同的作者都可以提供 NumPy 模块,或者是 Python 图形库。

不妨假设你想设计一套统一处理声音文件和数据的模块(或者称之为一个"包")。

现存很多种不同的音频文件格式(基本上都是通过后缀名区分的,例如: .wav,:file:.aiff,:file:.au,),所以你需要有一组不断增加的模块,用来在不同的格式之间转换。

并且针对这些音频数据,还有很多不同的操作(比如混音,添加回声,增加均衡器功能,创建人造立体声效果),所以你还需要一组怎么也写不完的模块来处理这些操作。

在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。

目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。

最简单的情况,放一个空的 :file:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的) __all__变量赋值。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:30:09  更:2022-07-05 23:31:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:13:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码