整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          一探究竟,PyCharm 2019.3 增加了哪些花

          一探究竟,PyCharm 2019.3 增加了哪些花里胡哨的新功能

          ython的IDE(Integrated Development Environment 集成開發(fā)環(huán)境)非常多,如:VS Code、Sublime、NotePad、Python自帶編輯器IDLE、JuPyter、Eclipse + PyDev等等,但是對(duì)于項(xiàng)目開發(fā)、管理、部署等稍微大一點(diǎn)的項(xiàng)目,我覺得還是PyCharm最好用!

          2019年12月2日,PyCharm迎來(lái)了2019.3版本,這也許會(huì)是2019年的最后一個(gè)大版本,那這個(gè)版本增加了哪些新功能呢?我們一起來(lái)看看吧!

          一、Jupyter

          PyCharm 在 2019年里連續(xù)發(fā)布了2019.1、2019.2、 2019.3三個(gè)大版本,對(duì)Jupyter進(jìn)行改進(jìn),這讓很多使用者感到欣慰,畢竟目前數(shù)據(jù)分析比較火,使用Jupyter Notebooks的開發(fā)者也越來(lái)越多。

          注意此功能僅專業(yè)版才有!

          1.交互式控件

          為了提供更多的交互性,Jupyter notebooks支持稱為“交互式控件”的功能。這些控件支持將靜態(tài)筆記本轉(zhuǎn)變?yōu)榻换ナ降拿姘澹瑥亩蛊渌脩粼诓榭茨愕墓P記本時(shí),可以自定義視圖。

          在此次更新中,PyCharm添加了對(duì)交互式控件的支持。這意味著窗口小部件將隨著輸出一起呈現(xiàn),并且可以像處理本機(jī)Jupyter notebooks一樣用于操作筆記。

          2.運(yùn)行時(shí)代碼補(bǔ)全

          PyCharm 的優(yōu)勢(shì)之一是借助先進(jìn)的靜態(tài)代碼分析算法,可以實(shí)現(xiàn)智能編碼提示。但是,對(duì)于動(dòng)態(tài)語(yǔ)言(例如Python)而言,靜態(tài)代碼分析還不足夠。這就是為什么在此次更新中,我們利用Jupyter本身提供的運(yùn)行時(shí)信息來(lái)對(duì)其進(jìn)行擴(kuò)展。在某些情況下,例如在字典索引或深層嵌套的表達(dá)式中,IDE無(wú)法使用靜態(tài)分析來(lái)找出其類型,而此次更新將會(huì)使代碼補(bǔ)全變得更為智能。

          3.在輸出面板上放大和縮小

          此次更新支持將預(yù)覽的字體大小設(shè)置為與編輯器一致,或者在設(shè)置中進(jìn)行自定義。編輯器提供了“使用Ctrl +鼠標(biāo)滾輪更改字體大小(縮放)“選項(xiàng)。啟用該選項(xiàng)后,你可以在按住Ctrl的同時(shí),使用鼠標(biāo)滾輪來(lái)放大或縮小預(yù)覽。

          二、Python

          1.文件路徑聯(lián)想

          害怕在寫文件名時(shí)打錯(cuò)字?特別是有較長(zhǎng)文件名時(shí),例如open('data/ survey_data_28112019_exported.csv') ?現(xiàn)在,你可以在Python代碼編輯器或控制臺(tái)中獲得文件路徑建議。我們擴(kuò)展了上下文感知的代碼補(bǔ)全功能,因此上下文中與文件相關(guān)的字符串字面量可以為可能的文件路徑提供建議。

          2.支持相對(duì)import

          與絕對(duì)import相比,你更喜歡相對(duì)import嗎?PyCharm現(xiàn)在支持在這些風(fēng)格之間自動(dòng)地轉(zhuǎn)換。如果你已經(jīng)使用相對(duì)導(dǎo)入方式導(dǎo)入了某個(gè)程序包,那么所有新的從該程序包的導(dǎo)入也將自動(dòng)創(chuàng)建為相對(duì)導(dǎo)入。

          3.Python 3.8:TypedDicts

          PyCharm 通過(guò)對(duì)TypedDict的支持,避免字典的錯(cuò)誤賦值。為你的鍵值對(duì)結(jié)構(gòu)提供更精確的展示,我們的代碼編輯器能幫助你找到恰當(dāng)?shù)氖褂梅椒ā?/p>

          4.Python 3.8:字面量類型注解

          你是否有采用特定字符串字面量的方法,例如帶文件模式“open”方法?你可以使用Python 3.8的Literal類型注解來(lái)檢查類型,還可以檢查特定的值。現(xiàn)在,當(dāng)你調(diào)用的函數(shù)出現(xiàn)不支持的值時(shí),PyCharm會(huì)出現(xiàn)告警。

          5.自動(dòng)創(chuàng)建pytest測(cè)試

          我們升級(jí)了用于自動(dòng)創(chuàng)建測(cè)試的工具,現(xiàn)在也支持pytest。有了這個(gè),PyCharm允許你通過(guò)在方法聲明的菜單中,僅僅單擊“Go To | Test”選項(xiàng),就自動(dòng)創(chuàng)建pytest測(cè)試。

          6.調(diào)試器:集合的大小信息

          調(diào)試時(shí)的跟蹤信息應(yīng)盡可能清晰與詳細(xì)。這就是我們調(diào)整變量視圖的原因,現(xiàn)在它可以顯示組織得更好且更全面的數(shù)據(jù)。有了這個(gè),就可以期待新的排序、科學(xué)數(shù)組的更好的視覺表示、集合長(zhǎng)度的顯示以及重復(fù)細(xì)節(jié)的去除。

          三、性能提升

          1.更快的索引

          PyCharm 先進(jìn)的代碼內(nèi)視可以幫助你更快地完成工作。為此,我們需要索引你的代碼和所有導(dǎo)入的包。當(dāng)你使用已編譯擴(kuò)展的軟件包時(shí)(如許多數(shù)據(jù)科學(xué)軟件包),在對(duì)其進(jìn)行索引之前,我們需要生成描述Python接口的Python骨架(存根文件)。我們對(duì)此過(guò)程進(jìn)行了改進(jìn),預(yù)計(jì)整個(gè)索引過(guò)程至少快25%。當(dāng)然,如果你在多個(gè)virtualenv中使用同一程序包,我們將重用已經(jīng)創(chuàng)建的索引。

          2.凍結(jié)次數(shù)減少,并改進(jìn)了凍結(jié)報(bào)告

          不幸的是,有時(shí)候PyCharm的UI會(huì)凍結(jié)一段時(shí)間,然后才讓你重新開始處理代碼。我們意識(shí)到這是非常令人不快的事情,因此我們正在努力消除這些問(wèn)題。我們已經(jīng)修復(fù)了許多可能導(dǎo)致UI凍結(jié)的問(wèn)題,現(xiàn)在,你可以直接從IDE中上報(bào)UI凍結(jié),這使我們有可能調(diào)查其凍結(jié)的原因,并確保它不再發(fā)生。提前感謝你幫助我們擺脫P(yáng)yCharm中的UI凍結(jié)問(wèn)題!

          3.更多的改進(jìn)

          a.今年,我們?cè)谒蠮etBrains IDE的啟動(dòng)性能方面進(jìn)行了大量工作。我們的核心平臺(tái)的啟動(dòng)時(shí)間在2019.3版本中得到了進(jìn)一步改善,我們將繼續(xù)努力使IDE更快地啟動(dòng)。

          b.現(xiàn)在可以在不重啟IDE的情況下更改主題。在選擇預(yù)先安裝的主題時(shí)或下載新主題后,都可以進(jìn)行此操作。

          c.在PyCharm 2019.3中,各種對(duì)于處理事件和忽略文件的改進(jìn),使版本控制的狀態(tài)更新得更快。

          d.我們對(duì)編輯器的呈現(xiàn)方式進(jìn)行了一些更改,現(xiàn)在滾動(dòng)瀏覽一個(gè)長(zhǎng)文件變得更加平滑。

          四、數(shù)據(jù)庫(kù)支持

          注意此功能僅專業(yè)版才有!

          支持MongoDB

          你要在MongoDB上構(gòu)建應(yīng)用程序嗎?那么你將很高興地得知現(xiàn)在可以在PyCharm中查看MongoDB集合。通過(guò)從數(shù)據(jù)庫(kù)工具窗口(視圖|工具窗口|數(shù)據(jù)庫(kù))添加數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)。PyCharm Professional Edition附帶了 JetBrains DataGrip(JetBrains制造的專業(yè)SQL IDE)的所有數(shù)據(jù)庫(kù)功能。

          五、IDE功能

          1.參數(shù)化運(yùn)行配置

          在創(chuàng)建命令行應(yīng)用程序時(shí),通常可以方便地快速更改參數(shù)。盡管你可以進(jìn)入“編輯配置”來(lái)進(jìn)行更改,但是現(xiàn)在有一種更好的方法:使用新的運(yùn)行配置宏(變量),每次啟動(dòng)應(yīng)用程序時(shí),PyCharm都會(huì)提示你輸入值。

          2.在選定內(nèi)容中搜索

          是否想知道在文件的某部分中,某些文本出現(xiàn)的頻率?現(xiàn)在,在你選定的內(nèi)容中,find動(dòng)作將自動(dòng)查找。想要到處搜索?再次按Ctrl-F(在macOS上為Cmd-F),會(huì)將搜索范圍擴(kuò)展到文件的其余部分。

          3.更多的改進(jìn)

          如果應(yīng)用程序的一部分是用JavaScript編寫的,則很可能你在某處使用了Handlebars模板。如果安裝了 Handlebars插件,則現(xiàn)在可以在任何Python字符串中啟用Handlebars代碼智能。只需在字符串中按Alt-Enter,選擇“插入語(yǔ)言或參考”,然后鍵入“Handlebars”。

          六、版本控制

          1.與當(dāng)前分支的改進(jìn)比較

          你擁有的分支越多,就越難追蹤它們之間的差異。在新版本的PyCharm中,分支比較功能看起來(lái)更好,并且可以使你快速了解哪些提交使兩個(gè)分支之間產(chǎn)生了差異。

          2.改進(jìn)了克隆代碼倉(cāng)的UI

          無(wú)論你使用哪種代碼倉(cāng),當(dāng)你要拉取新項(xiàng)目時(shí),我們現(xiàn)在都在同一個(gè)地方開始。

          3.更多的改進(jìn)

          1. 拉取遠(yuǎn)程分支時(shí),通常需要?jiǎng)?chuàng)建一個(gè)跟蹤該遠(yuǎn)程分支的本地分支。在PyCharm 2019.3中,’checkout’操作只有一個(gè),可以確保你看到遠(yuǎn)程分支的當(dāng)前狀態(tài),但是沒(méi)有丟失任何本地提交的風(fēng)險(xiǎn)。
          2. PyCharm始終能夠 push 你當(dāng)前已拉取的分支。有時(shí),你可能要推送另一個(gè)分支,從現(xiàn)在開始,不再需要首先將其檢出。

          七、Web開發(fā)

          注意此功能僅專業(yè)版才有!

          1.CDN中的CSS類

          你是否要使用CDN中的樣式表?現(xiàn)在,我們可以下載該樣式表的一個(gè)版本,專門用于代碼補(bǔ)全。

          2.查看調(diào)試JavaScript時(shí)方法返回的值

          就像在Python調(diào)試器中一樣,JavaScript調(diào)試器現(xiàn)在可以向你顯示你正在調(diào)用的方法的返回值。要查看返回值,請(qǐng)單擊調(diào)試器上的齒輪圖標(biāo),然后啟用“顯示返回值”。

          3.更多的改進(jìn)

          1. 設(shè)置CSS樣式,以強(qiáng)制使用單引號(hào)或雙引號(hào)。
          2. 無(wú)論你在CSS中使用單引號(hào)還是雙引號(hào),PyCharm現(xiàn)在都可以幫助你使引號(hào)保持一致。在 Other 選項(xiàng)卡中的 Settings | Editor | Code Style | Style Sheets | CSS 中進(jìn)行配置。
          3. 你是否使用未為其定義propTypes的React組件?PyCharm現(xiàn)在能夠推斷 props,并且將為你提供未定義propTypes的組件的代碼補(bǔ)全。

          源 | PyCharm官網(wǎng) 整理 | 豬哥 校正 | 豌豆花下貓

          Python的IDE(Integrated Development Environment 集成開發(fā)環(huán)境)非常多,如:VS Code、Sublime、NotePad、Python自帶編輯器IDLE、JuPyter、Eclipse + PyDev等等,但是對(duì)于項(xiàng)目開發(fā)、管理、部署等稍微大一點(diǎn)的項(xiàng)目,豬哥覺得還是PyCharm最好用!

          2019年12月2日,PyCharm迎來(lái)了2019.3版本,這也許會(huì)是2019年的最后一個(gè)大版本,那這個(gè)版本增加了哪些新功能呢?我們一起來(lái)看看吧!

          一、Jupyter

          PyCharm 在 2019年里連續(xù)發(fā)布了 2019.12019.22019.3三個(gè)大版本,對(duì)Jupyter進(jìn)行改進(jìn),這讓很多使用者感到欣慰,畢竟目前數(shù)據(jù)分析比較火,使用Jupyter Notebooks的開發(fā)者也越來(lái)越多。

          注意此功能僅專業(yè)版才有!

          1.交互式控件

          為了提供更多的交互性,Jupyter notebooks支持稱為“交互式控件”的功能。這些控件支持將靜態(tài)筆記本轉(zhuǎn)變?yōu)榻换ナ降拿姘澹瑥亩蛊渌脩粼诓榭茨愕墓P記本時(shí),可以自定義視圖。

          在此次更新中,PyCharm添加了對(duì)交互式控件的支持。這意味著窗口小部件將隨著輸出一起呈現(xiàn),并且可以像處理本機(jī)Jupyter notebooks一樣用于操作筆記。

          2.運(yùn)行時(shí)代碼補(bǔ)全

          PyCharm 的優(yōu)勢(shì)之一是借助先進(jìn)的靜態(tài)代碼分析算法,可以實(shí)現(xiàn)智能編碼提示。但是,對(duì)于動(dòng)態(tài)語(yǔ)言(例如Python)而言,靜態(tài)代碼分析還不足夠。這就是為什么在此次更新中,我們利用Jupyter本身提供的運(yùn)行時(shí)信息來(lái)對(duì)其進(jìn)行擴(kuò)展。在某些情況下,例如在字典索引或深層嵌套的表達(dá)式中,IDE無(wú)法使用靜態(tài)分析來(lái)找出其類型,而此次更新將會(huì)使代碼補(bǔ)全變得更為智能。

          3.在輸出面板上放大和縮小

          此次更新支持將預(yù)覽的字體大小設(shè)置為與編輯器一致,或者在設(shè)置中進(jìn)行自定義。編輯器提供了“使用Ctrl +鼠標(biāo)滾輪更改字體大小(縮放)“選項(xiàng)。啟用該選項(xiàng)后,你可以在按住Ctrl的同時(shí),使用鼠標(biāo)滾輪來(lái)放大或縮小預(yù)覽。

          二、Python

          1.文件路徑聯(lián)想

          害怕在寫文件名時(shí)打錯(cuò)字?特別是有較長(zhǎng)文件名時(shí),例如 open('data/ survey_data_28112019_exported.csv')?現(xiàn)在,你可以在Python代碼編輯器或控制臺(tái)中獲得文件路徑建議。我們擴(kuò)展了上下文感知的代碼補(bǔ)全功能,因此上下文中與文件相關(guān)的字符串字面量可以為可能的文件路徑提供建議

          2.支持相對(duì)import

          與絕對(duì)import相比,你更喜歡相對(duì)import嗎?PyCharm現(xiàn)在支持在這些風(fēng)格之間自動(dòng)地轉(zhuǎn)換。如果你已經(jīng)使用相對(duì)導(dǎo)入方式導(dǎo)入了某個(gè)程序包,那么所有新的從該程序包的導(dǎo)入也將自動(dòng)創(chuàng)建為相對(duì)導(dǎo)入。

          3.Python 3.8:TypedDicts

          PyCharm 通過(guò)對(duì)TypedDict的支持,避免字典的錯(cuò)誤賦值。為你的鍵值對(duì)結(jié)構(gòu)提供更精確的展示,我們的代碼編輯器能幫助你找到恰當(dāng)?shù)氖褂梅椒ā?/p>

          4.Python 3.8:字面量類型注解

          你是否有采用特定字符串字面量的方法,例如帶文件模式“open”方法?你可以使用Python 3.8的 Literal類型注解來(lái)檢查類型,還可以檢查特定的值。現(xiàn)在,當(dāng)你調(diào)用的函數(shù)出現(xiàn)不支持的值時(shí),PyCharm會(huì)出現(xiàn)告警。

          5.自動(dòng)創(chuàng)建pytest測(cè)試

          我們升級(jí)了用于自動(dòng)創(chuàng)建測(cè)試的工具,現(xiàn)在也支持pytest。有了這個(gè),PyCharm允許你通過(guò)在方法聲明的菜單中,僅僅單擊“Go To | Test”選項(xiàng),就自動(dòng)創(chuàng)建pytest測(cè)試。

          6.調(diào)試器:集合的大小信息

          調(diào)試時(shí)的跟蹤信息應(yīng)盡可能清晰與詳細(xì)。這就是我們調(diào)整變量視圖的原因,現(xiàn)在它可以顯示組織得更好且更全面的數(shù)據(jù)。有了這個(gè),就可以期待新的排序、科學(xué)數(shù)組的更好的視覺表示、集合長(zhǎng)度的顯示以及重復(fù)細(xì)節(jié)的去除。

          三、性能提升

          1.更快的索引

          PyCharm 先進(jìn)的代碼內(nèi)視可以幫助你更快地完成工作。為此,我們需要索引你的代碼和所有導(dǎo)入的包。當(dāng)你使用已編譯擴(kuò)展的軟件包時(shí)(如許多數(shù)據(jù)科學(xué)軟件包),在對(duì)其進(jìn)行索引之前,我們需要生成描述Python接口的Python骨架(存根文件)。我們對(duì)此過(guò)程進(jìn)行了改進(jìn),預(yù)計(jì)整個(gè)索引過(guò)程至少快25%。當(dāng)然,如果你在多個(gè)virtualenv中使用同一程序包,我們將重用已經(jīng)創(chuàng)建的索引。

          2.凍結(jié)次數(shù)減少,并改進(jìn)了凍結(jié)報(bào)告

          不幸的是,有時(shí)候PyCharm的UI會(huì)凍結(jié)一段時(shí)間,然后才讓你重新開始處理代碼。我們意識(shí)到這是非常令人不快的事情,因此我們正在努力消除這些問(wèn)題。我們已經(jīng)修復(fù)了許多可能導(dǎo)致UI凍結(jié)的問(wèn)題,現(xiàn)在,你可以直接從IDE中上報(bào)UI凍結(jié),這使我們有可能調(diào)查其凍結(jié)的原因,并確保它不再發(fā)生。提前感謝你幫助我們擺脫P(yáng)yCharm中的UI凍結(jié)問(wèn)題!

          3.更多的改進(jìn)

          今年,我們?cè)谒蠮etBrains IDE的啟動(dòng)性能方面進(jìn)行了大量工作。

          我們的核心平臺(tái)的啟動(dòng)時(shí)間在2019.3版本中得到了進(jìn)一步改善,我們將繼續(xù)努力使IDE更快地啟動(dòng)。

          現(xiàn)在可以在不重啟IDE的情況下更改主題。在選擇預(yù)先安裝的主題時(shí)或下載新主題后,都可以進(jìn)行此操作。

          在PyCharm 2019.3中,各種對(duì)于處理事件和忽略文件的改進(jìn),使版本控制的狀態(tài)更新得更快。

          我們對(duì)編輯器的呈現(xiàn)方式進(jìn)行了一些更改,現(xiàn)在滾動(dòng)瀏覽一個(gè)長(zhǎng)文件變得更加平滑。

          四、數(shù)據(jù)庫(kù)支持

          注意此功能僅專業(yè)版才有!

          1.支持MongoDB

          你要在MongoDB上構(gòu)建應(yīng)用程序嗎?那么你將很高興地得知現(xiàn)在可以在PyCharm中查看MongoDB集合。通過(guò)從數(shù)據(jù)庫(kù)工具窗口(視圖|工具窗口|數(shù)據(jù)庫(kù))添加數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)。PyCharm Professional Edition附帶了 JetBrains DataGrip(JetBrains制造的專業(yè)SQL IDE)的所有數(shù)據(jù)庫(kù)功能。

          五、IDE功能

          1.參數(shù)化運(yùn)行配置

          在創(chuàng)建命令行應(yīng)用程序時(shí),通常可以方便地快速更改參數(shù)。盡管你可以進(jìn)入“編輯配置”來(lái)進(jìn)行更改,但是現(xiàn)在有一種更好的方法:使用新的運(yùn)行配置宏(變量),每次啟動(dòng)應(yīng)用程序時(shí),PyCharm都會(huì)提示你輸入值。

          2.在選定內(nèi)容中搜索

          是否想知道在文件的某部分中,某些文本出現(xiàn)的頻率?現(xiàn)在,在你選定的內(nèi)容中,find動(dòng)作將自動(dòng)查找。想要到處搜索?再次按Ctrl-F(在macOS上為Cmd-F),會(huì)將搜索范圍擴(kuò)展到文件的其余部分。

          3.更多的改進(jìn)

          如果應(yīng)用程序的一部分是用JavaScript編寫的,則很可能你在某處使用了Handlebars模板。如果安裝了 Handlebars插件,則現(xiàn)在可以在任何Python字符串中啟用Handlebars代碼智能。只需在字符串中按Alt-Enter,選擇“插入語(yǔ)言或參考”,然后鍵入“Handlebars”。

          六、版本控制

          1.與當(dāng)前分支的改進(jìn)比較

          你擁有的分支越多,就越難追蹤它們之間的差異。在新版本的PyCharm中,分支比較功能看起來(lái)更好,并且可以使你快速了解哪些提交使兩個(gè)分支之間產(chǎn)生了差異。

          2.改進(jìn)了克隆代碼倉(cāng)的UI

          無(wú)論你使用哪種代碼倉(cāng),當(dāng)你要拉取新項(xiàng)目時(shí),我們現(xiàn)在都在同一個(gè)地方開始。

          3.更多的改進(jìn)

          拉取遠(yuǎn)程分支時(shí),通常需要?jiǎng)?chuàng)建一個(gè)跟蹤該遠(yuǎn)程分支的本地分支。

          在PyCharm 2019.3中,’checkout’操作只有一個(gè),可以確保你看到遠(yuǎn)程分支的當(dāng)前狀態(tài),但是沒(méi)有丟失任何本地提交的風(fēng)險(xiǎn)。

          PyCharm始終能夠 push 你當(dāng)前已拉取的分支。

          有時(shí),你可能要推送另一個(gè)分支,從現(xiàn)在開始,不再需要首先將其檢出。

          七、Web開發(fā)

          注意此功能僅專業(yè)版才有!

          1.CDN中的CSS類

          你是否要使用CDN中的樣式表?現(xiàn)在,我們可以下載該樣式表的一個(gè)版本,專門用于代碼補(bǔ)全。

          2.查看調(diào)試JavaScript時(shí)方法返回的值

          就像在Python調(diào)試器中一樣,JavaScript調(diào)試器現(xiàn)在可以向你顯示你正在調(diào)用的方法的返回值。要查看返回值,請(qǐng)單擊調(diào)試器上的齒輪圖標(biāo),然后啟用“顯示返回值”。

          3.更多的改進(jìn)

          - 設(shè)置CSS樣式,以強(qiáng)制使用單引號(hào)或雙引號(hào)。

          - 無(wú)論你在CSS中使用單引號(hào)還是雙引號(hào),PyCharm現(xiàn)在都可以幫助你使引號(hào)保持一致。在 Other 選項(xiàng)卡中的 Settings | Editor | Code Style | Style Sheets | CSS 中進(jìn)行配置。

          - 你是否使用未為其定義propTypes的React組件?PyCharm現(xiàn)在能夠推斷 props,并且將為你提供未定義propTypes的組件的代碼補(bǔ)全。

          簽到送書計(jì)劃

          自律改變自我!第①期打卡送書活動(dòng)啟動(dòng)!

          源 | 數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)之美

          本文介紹

          這是一個(gè)很好的Python自動(dòng)化的案例。對(duì)于小公司,采用手動(dòng)方式一個(gè)個(gè)發(fā)送郵件還是可以的。如果一個(gè)上百號(hào),上千號(hào),或者更大規(guī)模的公司,我們?cè)僖粋€(gè)個(gè)發(fā)送工資條郵件,就太浪費(fèi)時(shí)間了。鑒于此,我寫了一個(gè)這樣的程序,實(shí)現(xiàn)Python自動(dòng)化群發(fā)工資條的功能。

          原始數(shù)據(jù)源如下:

          最終效果如下:

          看到這里,你肯定也覺得很好玩兒吧?那么這樣一個(gè)自動(dòng)化程序,應(yīng)該怎么做呢?接著往下看。

          流程分析

          其實(shí)這樣一個(gè)代碼,總結(jié)下來(lái),就只有如下5步:

          ① 導(dǎo)入相關(guān)模塊;

          ② 讀取Excel表格;

          ③ 登錄郵箱;

          ④ 準(zhǔn)備要發(fā)送的郵件正文;

          ⑤ 發(fā)送郵件;

          1)導(dǎo)入相關(guān)模塊

          from openpyxl import load_workbook # 用于操作Excel的模塊import yagmail # 用于存儲(chǔ)郵箱地址和密碼的模塊import keyring # 用于記錄你郵箱地址和密碼的模塊from datetime import * # 用于獲取當(dāng)前系統(tǒng)時(shí)間的模塊

          2)讀取Excel表格

          # 加載Excel文件wb=load_workbook("群發(fā)工資條.xlsx",data_only=True)sheet=wb.activeprint(sheet)-------------------------------------------------------for row in sheet: row_text="" for cell in row: if cell.column=="B": continue row_text +=f"{cell.value}," print(row_text)------------------------------------------------------print("年:", date.today.year)print("月:", date.today.month)print(f"{date.today.year}-{date.today.month}月")

          結(jié)果如下:

          3)登錄郵箱

          yagmail.register("1127421544@qq.com","flmyucvntuvbjbcb")pwd=keyring.get_password("yagmail","1127421544@qq.com")yag=yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com",password=pwd)

          需要注意的是:第一行代碼是用于存儲(chǔ)你的郵件地址和密碼。第二行代碼使用keyring是為了記錄你的郵件地址和密碼。第三行代碼直接登錄郵箱。

          關(guān)于Python怎么發(fā)送郵件,我之前寫了一篇文章,進(jìn)行了詳細(xì)的介紹,下方是這篇文章的鏈接,大家可以參考。

          Python發(fā)郵件:http://suo.im/60ylZ1

          4)準(zhǔn)備要發(fā)送的正文

          由于發(fā)送的正文里面,需要我們發(fā)送一個(gè)帶表格的郵件,這就有必要我們了解一點(diǎn)前端知識(shí)。因此,我在最后面花一個(gè)章節(jié)為大家講解。

          5)發(fā)送郵件

          yag.send(f"{email}",f"數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)之美有限公司{date.today.year}-{date.today.month}月工資情況",contents)
          上述代碼共有3個(gè)參數(shù):第一個(gè)參數(shù)是收件人的郵箱;第二個(gè)參數(shù)是郵件的標(biāo)題;第三個(gè)參數(shù)是發(fā)送的內(nèi)容。

          關(guān)于html代碼的特別說(shuō)明

          會(huì)用Python發(fā)送郵件的人都知道,郵件正文內(nèi)容可以寫html代碼。你可能覺得自己啥也不會(huì),但是不用擔(dān)心,我們不需要學(xué)習(xí)太高深的前端代碼,做過(guò)爬蟲的人耳濡目染,都能夠看懂一些。

          1)自己寫一個(gè)簡(jiǎn)單的前端代碼

          我們可以直接用Pycharm創(chuàng)建一個(gè)新的html文件,里面會(huì)顯示初始的前端代碼,我們進(jìn)行簡(jiǎn)單的添加,就可以獲得一個(gè)表格啦!

          最終在瀏覽器中顯示效果如下:

          從上圖中根本看不出這是一個(gè)表格,那是因?yàn)槲覀儧](méi)有為它設(shè)置一個(gè)樣式,下面要做的就是為表格設(shè)置樣式。

          最終在瀏覽器中顯示效果如下:

          2)在Python中怎么寫前端代碼

          從上圖可以看出,整個(gè)前端代碼就是用一些列的標(biāo)簽組成,同時(shí)標(biāo)簽都是成對(duì)出現(xiàn)的。因此,在Python中寫前端代碼時(shí),只需要在對(duì)應(yīng)位置添加對(duì)應(yīng)的標(biāo)簽即可。

          for row in sheet: row_text="<tr>" for cell in row: if cell.column=="B": continue row_text +=f"<td>{cell.value}</td>" row_text +="</tr>" print("\n") print(row_text)

          結(jié)果如下:

          完整代碼

          為了文章的完整性,我在文章最后放上我的代碼。但是限于文章篇幅,最后我只粘貼一張圖片,詳細(xì)代碼,大家可以去文末獲取。


          主站蜘蛛池模板: 在线观看免费视频一区| 一区三区三区不卡| 久久亚洲AV午夜福利精品一区| 国产一区二区三区樱花动漫| 亚洲国产精品一区二区三区在线观看| 国产主播福利一区二区| 精品国产AV一区二区三区| 色一情一乱一伦一区二区三欧美| 国产伦精品一区二区三区女| 精品国产一区二区三区在线| 一区二区三区视频网站| 国产午夜精品免费一区二区三区| 97久久精品一区二区三区| 日韩在线一区高清在线| 国产精久久一区二区三区| 精品无码AV一区二区三区不卡| 在线观看视频一区二区| 中文字幕人妻无码一区二区三区 | 日本精品一区二区三本中文| 国产美女视频一区| 人妻无码一区二区不卡无码av| 国产SUV精品一区二区四| 国产激情精品一区二区三区| 水蜜桃av无码一区二区| 国产一区二区三区手机在线观看| 综合无码一区二区三区| 精品无码人妻一区二区三区18| 一区视频在线播放| 糖心vlog精品一区二区三区| 日本大香伊一区二区三区| 亚洲熟女综合色一区二区三区 | 狠狠色婷婷久久一区二区三区 | 国产精品电影一区二区三区| 国产成人无码AV一区二区| 女女同性一区二区三区四区| 人妻无码第一区二区三区| 精品一区二区三区四区电影| 精品少妇ay一区二区三区| 亚洲无线码在线一区观看 | 国产不卡视频一区二区三区| 中文字幕AV一区二区三区|