全文目录,一步到位
1.前言简介
1.1 专栏传送门
2. 前文知识梳理
文件操作 open()
函数定义
包定义
模块定义
引用包 引入模块 引用函数
3. 前文总结案例
案例内容随意
主要是看操作
3.1 案例介绍
首先: 输入文件名
- 第一次没有这个文件 提示没有文件
其次: 输入字符串
- 填写截取的
开始位置
和结束位置
(均包含
)- 将截取的字符串反转并输出
最终: 将反转后的字符串插入到
(输入的文件名)
文件内
- 输出最终文件内容
其中校验尽量加, 异常捕获尽可能的细致一些,
效果实现
即可
3.1.0 案例包结构
caseTest
主包
test_case.py
主程序入口
case_utils工具包文件夹
init.py
file_util.py
string_util.py
file文件夹
pzy.txt 案例创建的txt
3.1.1 案例拆解
一: 自定义包
case_utils
- 模块1
字符串相关
操作
–> 1.1 字符串反转 (str)
–> 1.2 字符串切片(str x y)- 模块2
文件相关
操作
–> 2.1 打开文件 输出全部 注意捕获异常 finally关闭流等
–> 2.2 文件追加 没有文件创建文件 有则追加二: 导入包及模块并使用测试
效果如下即为成功
3.1.2 案例操作效果
如图所示:
文字形式(直观展示)
请输入文件名称
:pzy
抱歉文件不存在,信息是-> [Errno 2] No such file or directory: ‘./case_utils/file/pzy.txt’
请输入需要操作的字符串:
123yzp456
请输入需要截取的开始位置(包含):
4
请输入需要操作的结束位置(包含):
6
截取后的字符串是yzp
数字反转, 结果是: pzy
追加程序执行成功, 追加内容是:-> pzy
pzy
3.2 代码实现
部分注释省略, 太多没必要
3.2.1 工具包一: file_util.py
"""
文件相关操作
"""
def read_file(path):
t = None
try:
t = open(path, 'r', encoding='utf-8')
print(t.read())
except FileNotFoundError as attributeError:
print(f"抱歉文件不存在,信息是-> {
attributeError}")
except Exception as exception:
print(exception)
finally:
if t is not None:
t.close()
def additional_file(path, str_arg):
t = None
try:
t = open(path, 'a', encoding='utf-8')
t.write(str_arg)
t.flush()
print(f"追加程序执行成功, 追加内容是:-> {
str_arg}")
except Exception as a:
print(a)
print("出现异常!")
finally:
if t is not None:
t.close()
if __name__ == '__main__':
additional_file("pzy_test.txt", "hello pzy! ")
read_file("pzy_test.txt")
3.2.2 工具包二: string_util.py
"""
字符串相关操作
"""
def string_reverse(str_arg):
"""
字符串反转
:param str_arg:
:return: 反转字符串
"""
return str_arg[::-1]
def string_sub(str_arg, start, end):
"""
字符串截取 (从开始位 - 结束位 ) 包含选择位 [仅正序]
:param str_arg: 传入字符串
:param start: 开始位置(保留)
:param end: 结束位置(保留)
:return: 目标字符串
"""
if start <= 0:
start = 1
if end <= 0:
end = 1
return str_arg[start - 1:end]
if __name__ == '__main__':
print(string_sub("123456789", 2, 8)) # 2345678
print(string_reverse("123456789")) # 987654321
3.2.3 导入控制: init.py
__all__ = ["file_util", 'string_util']
3.2.4 业务导包及使用(核心)
"""
业务代码功能实现
@author pzy
@description OK
@version 1.0.0
"""
from case_utils import *
file_url = f"./case_utils/file/{
input('请输入文件名称:')}.txt"
# 读取-测试异常抓取
file_util.read_file(file_url)
input_str = input("请输入需要操作的字符串: \n")
start_str = int(input("请输入需要截取的开始位置(包含): \n"))
end_str = int(input("请输入需要操作的结束位置(包含): \n"))
sub_str = string_util.string_sub(input_str, start_str, end_str)
print(f"截取后的字符串是{
sub_str}")
sub_str = string_util.string_reverse(sub_str)
print(f"数字反转, 结果是: {
sub_str}")
# 追加
file_util.additional_file(file_url, sub_str)
# 查询
file_util.read_file(file_url)
3.2.5 运行测试并查看效果(如图)
idea中效果 python
文件夹没有变化
pycharm中是有文件夹效果
区分的
4. 文章的总结与预告
4.1 本文总结
- 异常捕获的时候 注意细节 最后面用exception接异常
- 截取字符串注意条件判断
- input输入的都是字符串类型 需要转换成int类型
- 文件不存在自动补齐, 但
文件夹不存在会一直报错
(os操作)
4.2 下文预告
其他三方包的使用
如 pyecharts, apache-flink等
作者pingzhuyan 感谢观看