導航:首頁 > 編程語言 > 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工作中實際應用相關的資料

熱點內容
社會學波普諾pdf 瀏覽:582
解壓做食物的小視頻 瀏覽:756
pdf怎麼單獨設置文件夾 瀏覽:472
業務邏輯程序員 瀏覽:659
addto新建文件夾什麼意思 瀏覽:160
有伺服器地址怎麼安裝軟體 瀏覽:659
安卓如何完全清除數據 瀏覽:690
安卓安卓證書怎麼信任 瀏覽:53
伺服器被攻擊如何解決 瀏覽:221
學霸變成程序員 瀏覽:881
c語言編譯錯誤fatalerror 瀏覽:441
ipv4內部伺服器地址怎麼分配 瀏覽:463
java線程安全的方法 瀏覽:950
重復命令畫梯形 瀏覽:164
在疫情就是命令 瀏覽:328
自己搭建一個什麼伺服器好玩 瀏覽:253
java基礎馬士兵 瀏覽:823
完美世界手游如何查看伺服器 瀏覽:859
光遇安卓與ios什麼時候互通 瀏覽:598
js如何運行時編譯 瀏覽:918