Python快速学习

python之前简单了解过,但基本上没有学习过。

最近总有一些重复的事情,所以希望学习一下是否可以提高效率

1.基础

语言学习总离不开语法和撰写规范。下面是我找到的资料,没有花很大力气,所以不敢确定是否是最好的,不过对目前我的目的差不多够了。

基本知识:http://www.runoob.com/python3/python3-tutorial.html

命名规范:https://www.cnblogs.com/wangcp-2014/p/4608265.html

2.实践

看完前面的东西也用不了多长时间,然后就跃跃欲试了。当前使用的场景主要是log的分析(因为面对的是用户报障,所以有大量的log分析),所以就直接上手了。开始写的时候还是很生的(毕竟刚学的),所以经常要回去翻一些语法的细节。不过还好,差不多多半天的时间语法就差不多够用了。然后专心于功能逻辑的设计。

我写的功能相对比较明确,主要如下:

1.读取一个文件目录或文件(主要是os, os.path)

2.解压压缩文件(我是用的是winrar,会有窗口弹出,rar命令行工具处理格式较少,没法满足要求)

3.读取每一个文件,解析其中的关键log(主要是file操作和文本操作)

4.根据业务逻辑分析关键log(文本处理,业务逻辑解析,开始用的是str的各种操作,后来改成了正则模块,re)

5.打印已确信的问题,并打印无法确认的,还需要人为分析的关键log信息(格式控制)

参考资料如下:

解压:https://www.cnblogs.com/anpengapple/p/6140213.html

https://blog.csdn.net/T1243_3/article/details/80170006

https://blog.csdn.net/liudongdong19/article/details/79579770

http://www.runoob.com/python3/python3-reg-expressions.html

曾遇到的困扰的地方:

1.类成员和实例成员的写法和java或c++差异很大

2.无类型导致编写提示无效

3.优化

主要是两部分吧,

1性能优化,如何检测性能,并针对性能低下的部分进行改写。

https://blog.csdn.net/asukasmallriver/article/details/74356771

https://github.com/happyshdq/flashtext

2.设计优化。这个怎么说呢,有一些语言特性,更多的是一些通用的东西。

这里主要做的是:在实现功能的基础上,建立了一些清晰的概念模型,然后定义了一个控制流程,然后把后续的可能扩展点做了处理:可以后续在此概念模型下,尽量不修改现有代码文件的情况下扩展新的功能(主要是分析新问题的log)

关键概念:

sniffer:识别问题类型

parser:分析问题,并输出问题关键信息

flowmanager:控制整体流程

context:上下文及相关小概念

config:配置文件

此外,形成了两个通用模块:

fileexplorer:文件处理

log:基本的、业务无关的log解析

4.后记

整体感觉python还是比较好用的,最重要的是感觉轻量。脚本语言嘛,随写随用,对于一些分析工作来说,完全没有什么编译部署运行的感觉。

语言难度应该还好。也许受java/C++这些语言的影响,在用python时非强类型确实有些使用细节上的困扰,比如IDE的编码提示(我用的pycharm)。

你可能感兴趣的:(Python快速学习)