Python-程序模块化
一、程序模块化
一个程序可能需要导入自己写的模块,或者需要导入、查找、修改文件等操作。当把程序移植到其他路径执行时,会因为模块或文件路径的变化而报错。
程序模块化,就是将整个程序(包含该程序需要用到的所有函数、变量、文件、模块等)当做一个整体。只要整个程序内部的相对路径不改变,将程序移植到其他路径执行,也不会报错。
二、程序(实现一个功能)的基本结构
1、findkeys实现的功能:在日志中查找error和exception,并将对应的文件名、行数、内容写到日志文件中2、bin目录:包含可执行程序3、conf目录:配置文件,配置该程序需要用到的所有数据及路径4、data目录:包含该程序需要用到的所有数据5、lib目录:包含可执行程序需要调用的所有方法6、log目录:保存结果日志文件7、README.MD:程序说明
三、配置环境变量
1、conf目录下的setting.py,定义全局变量。将base_path加入临时环境变量,当base_path的路径(findkeys目录)发生变化时,也能正确获取到DATAPATH和LOGPATH
import os, sys base_path =os.path.dirname(os.path.dirname(__file__)) #base_path定位到findkeys这一层 sys.path.insert(0,base_path) #将根目录findkeys加入环境变量 DATAPATH = os.path.join(base_path,'data') #DATAPATH获取数据的保存路径 LOGPATH = os.path.join(base_path,r'log/log.log') #LOGPATH获取日志文件路径
2、seach.py:遍历DATAPATH下的所有文件的每一行;当文件中存在error或exception时,记录该文件名,行数和该行的所有内容
import os def search(datapath, logpath):with open(logpath,'w',encoding='utf-8')as f1:files = os.listdir(datapath)#获取datapath下的所有文件,保存在list中for file in files: #遍历每一个文件filepath = os.path.join(datapath,file) #获取文件的绝对路径with open(filepath, 'r') as f2:n = 1 #保存当前读取的行数;读取一行,n+1for line in f2:if 'error' in line or 'exception' in line:f1.write('文件名:%s 第%d行 内容:%s' %(file, n, line))n += 1
3、searchkeys.py:调用search.py,传入DATAPATH和LOGPATH
import sys, os base_path = os.path.dirname(os.path.dirname(__file__)) sys.path.insert(0,base_path) #将当前文件的父目录的父目录findkeys加入临时环境变量 from conf.setting import DATAPATH #导入DATAPATH from conf.setting import LOGPATH #导入LOGPATH from lib.search import search #导入search()if __name__ == '__main__':search(DATAPATH, LOGPATH)
转载于:https://www.cnblogs.com/jessicaxu/p/7761335.html
Python-程序模块化相关推荐
- python程序开发模块化_python-17-Python文件两种用途、模块化程序开发
--------------------------------python文件的两种用途---------------------------------- py文件的两种用途: 1.直接运行 pr ...
- python程序员工作怎样-现在Python就业薪资高吗?Python程序员前景怎么样?
现在Python就业薪资高吗?Python程序员前景怎么样? 近日,全球知名的开发者社区 Stack Overflow 发布了 2019 年度开发者调查报告.今年全球 190 个国家和地区共有近 9 ...
- python程序员年薪百万_想要成为年薪百万的Python程序员,这套面试题别错过
近几年来,Python的运用范围越来越广,发展势头十分强劲.小到网页建设.网站搭建,大到人工智能AI.云计算.人脸识别.大数据分析等等尖端技术,都基于Python编程语言来实现. 在小伙伴们通过参加培 ...
- c与c十十与python_浅要分析Python程序与C程序的结合使用
Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问,对媒体文件的访问等.而作为软件开发的传统编程 ...
- 浅谈 Python 程序和 C 程序的整合
浅谈 Python 程序和 C 程序的整合 Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问, ...
- Python 程序和 C 程序的整合
背景知识介绍 Python 语言的特点 Python 作为一门程序开发语言,被越来越多地运用到快速程序开发.Python 是一种解释型的,互动的,面向对象的编程语言,它包含了模块化的操作,异常处理,动 ...
- Python程序来计算球体的体积和面积
球体(实体)通常被认为是二维图形,即使该图形从其中心在三个平面上可见.造成这种情况的主要原因是,球体仅使用其半径进行测量. 然而,空心球体被认为是三维图形,因为它在其球壁内包含空间,并且有两个不同的半 ...
- 小学生三分钟学会Python程序语法元素分析~总结笔记
Python程序语法元素分析 前言:朕今年在读大二,苦逼学python,写博客为了更好的总结知识,每次写博客可能要花费几个小时,或者更多时间来总结知识,如果你觉得文章对你有帮助,可以在文章末尾点赞和评 ...
- python程序元素分析_荐 小学生三分钟学会Python程序语法元素分析~总结笔记
Python程序语法元素分析 前言:朕今年在读大二,苦逼学python,写博客为了更好的总结知识,每次写博客可能要花费几个小时,或者更多时间来总结知识,如果你觉得文章对你有帮助,可以在文章末尾点赞和评 ...
- python课堂实例,Python电子教案2 1 Python程序实例解析课堂
<Python电子教案2 1 Python程序实例解析课堂>由会员分享,可在线阅读,更多相关<Python电子教案2 1 Python程序实例解析课堂(41页珍藏版)>请在人人 ...
最新文章
- 5 修改request对象变量_【总结】前端5大常见设计模式,代码一看你就懂!
- Spark streaming vs JStorm
- 甲骨文正式发布Java 14(Oracle JDK 14)
- SSZipArchive的使用详解和遇到的问题
- ftp ---- vsftpd安装卸载
- AIM Tech Round 5C. Rectangles 思维
- Linux下安装VSCA
- Redis----windows下配置和运行
- angularjs sill 创建项目_AngularJS快速上手,从安装到运行
- mysql数据库库推荐书籍
- 发票查验一直网络异常、无法显示验证码、点击查验没反应怎么办?
- 拭目以待 英国女将谢洛克或将谱写飞镖传奇
- springbootvue简单的景点信息管理系统
- 网页上的漂浮物制作代码
- java串口通信读取电子秤RS232
- SDU_week11_水题汇总
- EFCore 的 DbFirst 模式
- 【狮子数学】chapter3-04-定积分计算(60-62)
- pdfbox将多页pdf转成多张长图片
- 百趣代谢组学分享:黑木耳多糖对小鼠肠道微生物及代谢表型的影响