导航:首页 > 编程语言 > python工作中实际应用

python工作中实际应用

发布时间:2023-01-31 01:59:15

⑴ 纯干货!python 在运维中的应用 (一):批量 ssh/sftp

日常工作中需要大量、频繁地使用ssh到服务器查看、拉取相关的信息或者对服务器进行变更。目前公司大量使用的shell,但是随着逻辑的复杂化、脚本管理的精细化,shell已经不满足日常需求,于是我尝试整合工作中的需求,制作适合的工具。 由于管理制度的缺陷,我以工作流程为核心思考适合自己的运维方式,提升工作效率,把时间留给更有价值的事情。 完整代码在最后,请大家参考。

生产:4000+物理服务器,近 3000 台虚拟机。

开发环境:python3.6、redhat7.9,除了paramiko为第三方模块需要自己安装,其他的直接import即可。

批量执行操作是一把双刃剑。批量执行操作可以提升工作效率,但是随之而来的风险不可忽略。

风险案例如下:

挂载很多数据盘,通常先格式化硬盘,再挂载数据盘,最后再写入将开机挂载信息写入/etc/fstab文件。在批量lsblk检查硬盘信息的时候发现有的系统盘在/sda有的在/sdm,如果不事先检查机器相关配置是否一致直接按照工作经验去执行批量操作,会很容易造成个人难以承受的灾难。

在执行批量操作时按照惯例:格式化硬盘->挂载->开机挂载的顺序去执行,假设有的机器因为某些故障导致格式化硬盘没法正确执行。在处理这类问题的时候通常会先提取出失败的ip,并再按照惯例执行操作。运维人员会很容易忽略开机挂载的信息已经写过了,导致复写(这都是血和泪的教训)。

所以,为了避免故障,提升工作效率,我认为应当建立团队在工作上的共识,应当遵守以下原则:

当然,代码的规范也应当重视起来,不仅是为了便于审计,同时也需要便于溯源。我认为应当注意以下几点:

1、ssh no existing session,sftp超时时间设置:

在代码无错的情况下大量ip出现No existing session,排查后定位在代码的写法上,下面是一个正确的示例。由于最开始没考虑到ssh连接的几种情况导致了重写好几遍。另外sftp的实例貌似不能直接设置连接超时时间,所以我采用了先建立ssh连接再打开sftp的方法。

2、sftp中的get()和put()方法仅能传文件,不支持直接传目录:

不能直接传目录,那换个思路,遍历路径中的目录和文件,先创建目录再传文件就能达到一样的效果了。在paramiko的sftp中sftp.listdir_attr()方法可以获取远程路径中的文件、目录信息。那么我们可以写一个递归来遍历远程路径中的所有文件和目录(传入一个列表是为了接收递归返回的值)。

python自带的os模块中的os.walk()方法可以遍历到本地路径中的目录和文件。

3、多线程多个ip使用sftp.get()方法时无法并发。

改成多进程即可。

4、多个ip需要执行相同命令或不同的命令。

由于是日常使用的场景不会很复杂,所以借鉴了ansible的playbook,读取提前准备好的配置文件即可,然后再整合到之前定义的ssh函数中。


同时,我们还衍生出一个需求,既然都要读取配置,那同样也可以提前把ip地址准备在文件里。正好也能读取我们返回的执行程序的结果。

参数说明:

密码认证:

公钥认证:

可以配合 grep,awk 等命令精准过滤。

个人认为 Python 在初中级运维工作中的性质更像是工具,以提升工作效率、减少管理成本为主。可以从当前繁琐的工作中解脱出来,去 探索 更有价值的事情。python 本质上并不会减少故障的产生,所以在不同的阶段合理利用自身掌握的知识解决当前最重要的痛点,千万不要本末倒置。

⑵ 学完Python可以应用到工作的哪些应用中

从工作上应用于:Python开发、Python爬虫、大数据;
从生活上,爬虫为我们增添了很多生活乐趣、便利了日常,比如说数据分析、简单地几行代码可以处理上千条Excel数据等等。
Python开发
自动化测试、自动化运维、WEB开发(网站开发)、人工智能都属于Python开发。
自动化测试——用Python编写简单的实现脚本,运用在Selenium/lr中,实现自动化。
自动化运维——Python对于服务器运维很重要。
目前几乎所有Linux发行版中都自带了Python解释器,以使用Python脚本进行批量化的文件部署,和运行调整~
而且Python提供了全方位的工具集合,结合Web,开发方便运维的工具会变得十分简单。
WEB开发——Python最火的WEB开发框架Django在业界非常流行,其中的设计哲学也常用于其它程序语言设计的框架~
如果是网站后端,使用它单间网站,后台服务比较容易维护。如我们常看到的:Gmail、知乎、豆瓣等~
人工智能更是现在非常火的方向,现在释放出来的几个非常有影响力的AI框架,大多是Python的实现的。
Python爬虫
在当前信息大爆炸时代,大量的信息都通过Web来展示,为了获取这些数据,网络爬虫工程师就应运而生。
不过这可不止我们日常的抓取数据和解析数据那些简单,还能够突破普通网站常见的反爬虫机制,以及更深层次的爬虫采集算法的编写。
大家也可以去网上搜索别人通过爬虫做了什么有趣的事情:
“用Python写的第一个程序,是爬取糗事网络上的图片、自动下载到本地、自动分成文件夹保存,当时就觉得,卧糟,太NB了~”
“智联招聘爬虫,支持输入查询的职位关键词+城市。并将爬取到的数据分别用Exce和Python(matplotlib)做了数据分析及可视化……”
“尝试爬取京东热卖、淘宝淘抢购(还是聚划算)的商品信息,没想到还挺简单的,主要是没做什么防爬虫措施……”
Python大数据
数据是一个公司的核心资产,从杂乱无章的数据中提取有价值的信息或者规律,成为了数据分析师的首要任务。
Python的工具链为这项繁重的工作提供了极高的效率支持,数据分析建立在爬虫的基础上,我们便捷地爬下海量数据,才能进行分析。

⑶ Python编程语言主要应用在什么领域

Python是一门简单、易学并且很有前途的编程语言,很多人都对Python感兴趣,但是当学完Python基础用法之后,又会产生迷茫,尤其是自学的人员,不知道接下来的Python学习方向,以及学完之后能干些什么?以下是Python十大应用领域!
1. WEB开发
Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python
web框架为Django。从事该领域应从数据、组件、安全等多领域进行学习,从底层了解其工作原理并可驾驭任何业内主流的Web框架。
2. 网络编程
网络编程是Python学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析。
3. 爬虫开发
在爬虫领域,Python几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。
4. 云计算开发
Python是从事云计算工作需要掌握的一门编程语言,目前很火的云计算框架OpenStack就是由Python开发的,如果想要深入学习并进行二次开发,就需要具备Python的技能。
5. 人工智能
MASA和Google早期大量使用Python,为Python积累了丰富的科学运算库,当AI时代来临后,Python从众多编程语言中脱颖而出,各种人工智能算法都基于Python编写,尤其PyTorch之后,Python作为AI时代头牌语言的位置基本确定。
6. 自动化运维
Python是一门综合性的语言,能满足绝大部分自动化运维需求,前端和后端都可以做,从事该领域,应从设计层面、框架选择、灵活性、扩展性、故障处理、以及如何优化等层面进行学习。
7. 金融分析
金融分析包含金融知识和Python相关模块的学习,学习内容囊括Numpy\Pandas\Scipy数据分析模块等,以及常见金融分析策略如“双均线”、“周规则交易”、“羊驼策略”、“Dual
Thrust 交易策略”等。
8. 科学运算
Python是一门很适合做科学计算的编程语言,97年开始,NASA就大量使用Python进行各种复杂的科学运算,随着NumPy、SciPy、Matplotlib、Enthought
librarys等众多程序库的开发,使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。
9. 游戏开发
在网络游戏开发中,Python也有很多应用,相比于Lua or
C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。
10. 桌面软件
Python在图形界面开发上很强大,可以用tkinter/PyQT框架开发各种桌面软件!

⑷ 学习python有什么好的用处

学Python可以做web开发,目前开发在国内的发展非常好,Python的web开发框架是最大的一个优势,如果你用Python搭建一个网站只需要几行的代码就可以了,非常简单。
学Python可以从事数据分析工作,Python所拥有的完整的生态环境十分有利于进行数据分析处理,大数据所需要的数据可视化、数据库操作等都是可以通过Python中的模块来完成的。
学Python可以从事和人工智能相关的工作,目前人工智能被认为最有前途的行业之一,但是人工智能对学历要求较高,如果你是高学历人才,学完Python可以考虑向人工智能方向发展,就业前景是非常好的。
学Python可以做运维工程师,很多公司在招聘中高级运维工程师时都要求工程师一定要掌握Python语言,因为在实际工作中用途很大。

⑸ Python可以用来干什么

1、做日常任务,比如下载视频、MP3、自动化操作excel、自动发邮件。

2、做网站开发、web应用开发,很多着名的网站像知乎、YouTube就是Python写的。

许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

3、做网络游戏的后台,很多在线游戏的后台都是Python开发的。

4、系统网络运维

Linux运维是必须而且一定要掌握Python语言,它可以满足Linux运维工程师的工作需求提升效率,总而提升自己的能力,运维工程师需要自己独立开发一个完整的自动化系统时,这个时候才是真正价值的体现,才能证明自身的能力,让老板重视。

5、3D游戏开发

Python也可以用来做游戏开发,因为它有很好的3D渲染库和游戏开发框架,目前来说就有很多使用Python开发的游戏,如迪斯尼卡通城、黑暗之刃。

6、科学与数字计算

我们都知道现在来临了大数据的时代,数据可以说明一切问题的原因,现在很多做数据分析的不是原来那么简单,Python语言成为了做数据分析师的第一首选,它同时可以给工作带来很大的效率。

7、人工智能

人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。Python语言对于人工智能来说是最好的语言。目前好多人都开始学习人工智能+Python学科。

8、网络爬虫

爬虫是属于运营的比较多的一个场景吧,比如谷歌的爬虫早期就是用跑Python写的. 其中有一个库叫 Requests ,这个库是一个模拟HTTP请求的一个库,非常的出名! 学过Python的人没有不知道这个库吧,爬取后的数据分析与计算是Python最为擅长的领域,非常容易整合。不过目前Python比较流行的网络爬虫框架是功能非常强大的scrapy。

9、数据分析

一般我们用爬虫爬到了大量的数据之后,我们需要处理数据用来分析,不然爬虫白爬了,我们最终的目的就是分析数据,在这方面 关于数据分析的库也是非常的丰富的,各种图形分析图等 都可以做出来。也是非常的方便,其中诸如Seaborn这样的可视化库,能够仅仅使用一两行就对数据进行绘图,而利用Pandas和numpy、scipy则可以简单地对大量数据进行筛选、回归等计算。

而后续复杂计算中,对接机器学习相关算法,或者提供Web访问接口,或是实现远程调用接口,都非常简单。

阅读全文

与python工作中实际应用相关的资料

热点内容
吃鸡国际体验服为什么服务器繁忙 浏览:92
php中sleep 浏览:488
vr怎么看视频算法 浏览:84
手机app如何申报个人所得税零申报 浏览:692
如何截获手机app连接的ip 浏览:330
冰箱压缩机是否需要电容 浏览:344
python列表每一行数据求和 浏览:274
自己有一台服务器可以玩什么 浏览:656
社会学波普诺pdf 浏览:584
解压做食物的小视频 浏览:758
pdf怎么单独设置文件夹 浏览:474
业务逻辑程序员 浏览:659
addto新建文件夹什么意思 浏览:161
有服务器地址怎么安装软件 浏览:660
安卓如何完全清除数据 浏览:691
安卓安卓证书怎么信任 浏览:54
服务器被攻击如何解决 浏览:221
学霸变成程序员 浏览:883
c语言编译错误fatalerror 浏览:443
ipv4内部服务器地址怎么分配 浏览:464