python函数降低编程复杂度_Python重构此函数,将其认知复杂度从19降低到允许的15...
提取函数以生成文件路径:def _file_paths(directory):
for root, dirs, filenames in os.walk(directory):
for filename in filenames:
file_path = os.path.join(root, filename)
if os.path.isfile(file_path):
yield file_path
统一异常处理:
^{pr2}$
提取用于处理文件类型的函数:def _handle_cfn(file_object):
file_contents = file_object.read()
if "AWSTemplateFormatVersion" in file_contents:
data = json.dumps(file_contents)
print(data)
def _handle_tf(file_object):
obj = hcl.load(file_oject)
data = json.dumps(obj)
print(data)
为文件扩展名不匹配时创建空处理程序:def _null_handler(file_object):
pass
将文件扩展名映射到处理程序:_extension_handlers = {'.json': _handle_cfn,
'.template': _handle_cfn,
'.yaml': _handle_cfn,
'.yml': _handle_cfn,
'.tf': _handle_tf}
组合起来:import os
import json
import click
import hcl
def file_handler(dir):
for file_path in _file_paths(dir):
base, extension = os.path.splitext(file_path)
handler = _extension_handlers.get(extension, _null_handler)
with open(file_path) as file_object:
with _translate_error(ValueError, SystemExit):
handler(file_object)
您可以进一步提取一个用于处理每个文件的函数:def _handle_file(file_path):
base, extension = os.path.splitext(file_path)
handler = _extension_handlers.get(extension, _null_handler)
with open(file_path) as file_object:
with _translate_error(ValueError, SystemExit):
handler(file_object)
那么您的主要功能是:def file_handler(dir):
for file_path in _file_paths(dir):
_handle_file(file_path)
python函数降低编程复杂度_Python重构此函数,将其认知复杂度从19降低到允许的15...相关推荐
- python采用函数式编程模式吗_Python函数与函数式编程
1 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创 ...
- python中字符串格式化的形式_Python中format函数字符串格式化入门
格式化在程序开发中非常常见,大家肯定不陌生,Python中也存在多重格式化方式,format函数就是其中一种. 函数原型format(value[, format_spec]) 参数意义 value: ...
- python中的方法什么意思_python中的函数和方法的区别是什么
python中的函数和方法的区别: 1.函数要手动传self,方法不用传self. 2.如果是一个函数,要用类名去调用,如果是一个方法,要用对象去调用. 举例说明:class Foo(object): ...
- python中fact()是什么意思_python中fact函数是什么及如何使用?
虽然已经和大家讲述过很多函数了,但是因为在项目搭建里,函数是起着十分重要的作用,所以需要用到的函数有很多,而绝大部分函数,大家经常使用过程中,轻松运用使用,但是还有少部分函数,大家却未见过,也不知道怎 ...
- python中def什么时候用_Python中定义函数def的使用方法
Python中定义函数def的使用方法 发布时间:2020-12-15 09:26:24 来源:亿速云 阅读:71 作者:小新 这篇文章给大家分享的是有关Python中定义函数def的使用方法的内容. ...
- python量化交易编程自学网_Python量化交易编程自学 不会编程能做量化交易吗?...
Python量化交易编程自学 不会编程能做量化交易吗? 点击:44 日期:2020-07-10 17:41:00.0 我经常会遇到朋友发来这样的问题,自己忙,不会编程,也没时间学,如何才能实现「量化 ...
- python中map用法详解_Python:map函数用法详解
一个简单的例子:将一个list中所有元素平方,常规的做法如下图所示,虽然实现了这个功能,但并没有给人一目了然的感觉.若换成map来实现,则会好很多. 常规方法 map函数 1.map函数介绍及其简单使 ...
- linux编程取消wait函数,Linux编程基础之进程等待(wait()函数).pdf
Linux编程基础之进程等待(wait()函数) 编程过程中,有时需要让一个进程等待另一个进程 ,最常见的是父进程等待自己的子进程 ,或者父进程回收自己 的子进程资源包括僵尸进程.这里简单介绍一下系统 ...
- python的面向对象编程学生成绩_python的类_面向对象编程
摘自谬雪峰https://www.liaoxuefeng.com/wiki/1016959663602400/1017496031185408 面向对象编程(定义对象)和面向过程(定义函数)的区别,各 ...
最新文章
- Web socket广播
- [JavaWeb-MySQL]多表查询概述
- python求矩阵的秩_Python 实现线性代数计算器
- PAT (Basic Level) Practise:1013. 数素数
- 硅谷VC想对CIO说这些
- [转载] python程序所需的图片通过base64编码成字符串放在代码中
- :visible.sync 的作用
- elas源码赏析(二)sobel算子3*3行列分解快速卷积
- 【老生谈算法】matlab实现传染病模型源码——传染病模型
- 逐点比较法直线插补MATLAB
- 伪彩色增强(基于MATLAB)
- 关于几种常用的脱壳方法总结
- python爬虫的知识
- python入门知识以及print的用法
- Hadoop Dynamometer工具详细教程,填坑日记
- Java获取package下所有的class对象(普通文件包和Jar文件包)
- 使用jasypt 进行数据库配置加密
- java游戏宠物进化,[娱乐][SCT]imiPet —— 动态动作模型的宠物开源,由社区维护[1.9-1.16]...
- 【CSAPP:3e 深入理解计算机系统】课堂笔记 Computer Systems from a Programmer’s Perspective
- ONLYOFFICE如何做到在线免费转换PDF