第八期:5款Python小工具,第3款徹底解放你的雙手

前言

PyHubWeekly每週定期更新,精選GitHub上優質的Python項目/小工具。

如果喜歡,麻煩給個Star支持一下吧。此外,歡迎大家通過提交issue來投稿和推薦自己的項目~

本期為大家推薦GitHub上5個優質的Python項目,它們分別是:

  • newscatcher
  • pycodestyle
  • pywinauto
  • real-url
  • docopt

下面分別來介紹一下上述5個GitHub項目。

newscatcher

Star:719

newscatcher獲取新聞資訊的工具包,它時刻監控者成千上萬個新聞媒體並對其進行聚合,它包含豐富的API接口,開發者可以通過時間新聞源關鍵字等方式來獲取新聞資訊。

也許會有同學疑惑,我們已經有這麼多新聞軟件,這個工具有什麼價值呢?

第一:對於我們常用的新聞軟件,具體怎麼樣,我想應該都很清楚,質量參差不齊,而且廣告繁多。所以,首先,我們可以通過newscatcher這個工具包獲取我們想要的新聞資訊。

第二:它提供了豐富的數據源,假如你喜歡做金融數據分析,僅憑股票等這些量化的數據是很難得到很理想的分析結果,它往往受到政策和事件的影響,所以,這時候就需要一些非結構化的數據

區輔助分析。而新聞,在其中就是一種非常有價值的非結構化數據。

安裝:

<code>pip install newscatcher/<code>

使用:

<code>from newscatcher import Newscatcher
from newscatcher import get_news
from newscatcher import get_headlines


news_source = Newscatcher('blackfaldslife.com')
news = get_news('wired.co.uk')
headlines = get_headlines('wired.co.uk')/<code>

pycodestyle

Star:4k

pycodestyle是根據PEP 8中的樣式約定檢查Python代碼的工具,它具有如下特性,

  • 添加新代碼檢查很容易
  • 快速跳轉到錯誤位置
  • 輕量化
  • 帶有全面的測試套件

安裝:

<code>pip install pycodestyle
pip install --upgrade pycodestyle
pip uninstall pycodestyle/<code>

使用:

可以直接在命令行調用pycodestyle,通過各種選項可以實現不同的功能,例如,統計錯數數量、顯示PEP8相關提示,下面看一個示例

<code># E40.py
import os, sys/<code>

然後對其進行代碼檢查,

<code>E40.py:1:10: E401 multiple imports on one line
import os, sys
        ^
  Place imports on separate lines.

  Okay: import os\\nimport sys
  E401: import sys, os

  Okay: from subprocess import Popen, PIPE
  Okay: from myclas import MyClass
  Okay: from foo.bar.yourclass import YourClass
  Okay: import myclass
  Okay: import foo.bar.yourclass/<code>

pywinauto

Star:2k

在上一期我介紹了一款網頁自動化工具helium,它能夠實現網頁端的很多重複性工作,的確大大提高了工作效率。

如果你的工作、學習內容不僅限於網頁端、如果helium還不能滿足你高效工作的需求。那麼,pywinauto一定可以做到。

pywinauto是一款實現Windows GUI自動化的Python工具,它可以將鼠標和鍵盤操作發送到Windows對話框和控件。此外,它還支持更復雜的操作,例如獲取文本數據。

安裝:

<code>pip install -U pywinauto/<code>

使用:

先寫一段演示代碼,

<code>from pywinauto.application import Application
app = Application().start("notepad.exe")

app.UntitledNotepad.menu_select("幫助->關於記事本")

app.UntitledNotepad.Edit.type_keys("pywinauto Works!", with_spaces = True)/<code>
PyHubWeekly | 第八期:5款Python小工具,第3款徹底解放你的雙手

real-url

Star:256

real-url是一款解析流媒體直播源的Python工具包,目前支持21個直播平臺:鬥魚直播、虎牙直播、嗶哩嗶哩直播、戰旗直播、網易CC直播、火貓直播、企鵝電競、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、觸手直播、NOW直播、抖音直播,愛奇藝直播、酷狗直播、龍珠直播、PPS奇秀直播、六間房。

獲取直播源地址之後可以在PotPlayer、VLC、flv.js等播放器進行播放。

使用:

可以直接從github下載代碼zip包或者克隆代碼,然後再命令行下執行對應的腳本即可。

不同的腳本對應不同的平臺,例如,douyin.py對應抖音,douyu.py對應鬥魚,也就是說,我們需要哪個平臺的直播源,就執行拼音對應的腳本即可。

當執行命令python [script.py]後,可以輸入直播房間號或者鏈接即可獲取直播鏈接,然後再PotPlayer打開鏈接即可。

下面看一下演示,

PyHubWeekly | 第八期:5款Python小工具,第3款徹底解放你的雙手

docopt

Star:7k

docopt是一款Python風格的命令行參數解析工具,它通過解析Python文件開頭的註釋文檔來解析命令行參數格式。這樣的方便之處是能夠實現業務代碼與命令行參數模塊分開,但是,對註釋doc的格式要求也比較嚴格。

示例,

<code>"""
Naval Fate.

Usage:
naval_fate ship new <name>...
naval_fate ship <name> move [--speed=]
naval_fate ship shoot
naval_fate mine (set|remove) [--moored|--drifting]
naval_fate -h | --help
naval_fate --version

Options:
-h --help     Show this screen.
--version     Show version.
--speed=
Speed in knots [default: 10].
--moored     Moored (anchored) mine.
--drifting   Drifting mine.
"""
from docopt import docopt


if __name__ == '__main__':
  arg = docopt(__doc__, argv=None, help=True, version=None, options_first=False)
  print(arg)
/<name>/<name>/<code>

然後在命令行執行命令就可以看到docopt通過註釋文檔解析的參數,

<code>> test.py ship Guardian move 100 150 --speed=15
{'--drifting': False,
'--help': False,
'--moored': False,
'--speed': '15',
'--version': False,
'<name>': ['Guardian'],
'': '100',
'': '150',
'mine': False,
'move': True,
'new': False,
'remove': False,
'set': False,
'ship': True,
'shoot': False}
/<name>/<code>

  • 乾貨 | 2019年共享免費資源整理(上):學習資源篇
  • 乾貨 | 2019年共享免費資源整理(下):實用工具篇
  • 實用工具 | 5款超實用瀏覽器插件,第一款真神器
  • 實用工具 | 10款搜索引擎,看到第一款就會毅然放棄百度!
  • 實用工具 | 6款免費OCR工具,第一款是神器
  • 該如何運營一個微信公眾號?


分享到:


相關文章: