實(shí)用的 Python 內(nèi)置小工具

一. 下載服務(wù)器

Python 內(nèi)置了一個下載服務(wù)器,只需要進(jìn)去目標(biāo)目錄,執(zhí)行下面的啟動命令即可:

Python2:

mia@ubuntu:~/Desktop$ ls
a.txt  b.txt  c
mia@ubuntu:~/Desktop$ python2 -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

SimpleHTTPServer 啟動之后, 局域網(wǎng)內(nèi)的任意一臺電腦通過訪問 http://192.168.6.126:8000/ 地址來下載文件:

SimpleHTTPServer 啟動的下載服務(wù)器

Python3:
Python3 對系統(tǒng)庫進(jìn)行了重新整理,因此啟動方式也會有所不同。Python3 執(zhí)行以下命令,也會在當(dāng)前目錄下啟動一個文件下載服務(wù)器,默認(rèn)打開 8000 端口,也可以自行指定端口:

mia@ubuntu:~$ python3 -m http.server 8001
Serving HTTP on 0.0.0.0 port 8001 (http://0.0.0.0:8001/) ...
http.server 啟動的下載服務(wù)器

注:上述的 Python 語句本質(zhì)上是啟動了一個 Python 內(nèi)置的 Web 服務(wù)器。如果當(dāng)前目錄下存在 index.html 文件,則會顯示一個 html 頁面。反之,則顯示當(dāng)前目錄下的文件列表,也就是我們上面看到的下載服務(wù)器。

二. JSON 格式化工具

JSON 是一種非常流行的數(shù)據(jù)交換格式,即易于人類閱讀和編寫,同時也易于機(jī)器解析和生成。在日常工作中,我們經(jīng)常需要將 JSON 字符串轉(zhuǎn)換為 JSON 對象,普遍的一種做法是,打開瀏覽器搜索 “在線JSON格式化工具”。

除此之外,在命令行中,我們可以借助 python -m json.tool 解析 JSON 字符串。下面的 JSON字符串直接閱讀會非常困難:

mia@ubuntu:~/Desktop$ echo '{"own_collections":[],"own_collections_page":1,"own_collections_total_pages":0,"manageable_collections":[],"manageable_collections_page":1,"manageable_collections_total_pages":0,"notebooks":[{"id":50215835,"name":"Python > 每日get一個技能","book":false},{"id":50111086,"name":"環(huán)境搭建和工具使用","book":false},{"id":49600701,"name":"數(shù)據(jù)分析 > 常用庫","book":false}],"notebooks_page":1,"notebooks_total_pages":1}'
{"own_collections":[],"own_collections_page":1,"own_collections_total_pages":0,"manageable_collections":[],"manageable_collections_page":1,"manageable_collections_total_pages":0,"notebooks":[{"id":50215835,"name":"Python > 每日get一個技能","book":false},{"id":50111086,"name":"環(huán)境搭建和工具使用","book":false},{"id":49600701,"name":"數(shù)據(jù)分析 > 常用庫","book":false}],"notebooks_page":1,"notebooks_total_pages":1}

可以使用管道操作符,作為輸入傳遞給 json.tool

mia@ubuntu:~/Desktop$ echo '{"own_collections":[],"own_collections_page":1,"own_collections_total_pages":0,"manageable_collections":[],"manageable_collections_page":1,"manageable_collections_total_pages":0,"notebooks":[{"id":50215835,"name":"Python > 每日get一個技能","book":false},{"id":50111086,"name":"環(huán)境搭建和工具使用","book":false},{"id":49600701,"name":"數(shù)據(jù)分析 > 常用庫","book":false}],"notebooks_page":1,"notebooks_total_pages":1}' | python -m json.tool
{
    "manageable_collections": [],
    "manageable_collections_page": 1,
    "manageable_collections_total_pages": 0,
    "notebooks": [
        {
            "book": false,
            "id": 50215835,
            "name": "Python > \u6bcf\u65e5get\u4e00\u4e2a\u6280\u80fd"
        },
        {
            "book": false,
            "id": 50111086,
            "name": "\u73af\u5883\u642d\u5efa\u548c\u5de5\u5177\u4f7f\u7528"
        },
        {
            "book": false,
            "id": 49600701,
            "name": "\u6570\u636e\u5206\u6790 > \u5e38\u7528\u5e93"
        }
    ],
    "notebooks_page": 1,
    "notebooks_total_pages": 1,
    "own_collections": [],
    "own_collections_page": 1,
    "own_collections_total_pages": 0
}

三. 檢驗(yàn)第三方庫是否正確安裝

安裝完一個第三方庫,我們都知道在 python shell 中直接 import 一下,觀察是否有報(bào)錯,即可檢驗(yàn)第三方庫是否正確安裝:

mia@ubuntu:~/Desktop$ pip2 list --format=columns | grep -iE flask
Flask                              1.1.4
mia@ubuntu:~/Desktop$ python
Python 2.7.17 (default, Feb 27 2021, 15:10:58) 
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>> 

但如果是想在腳本中實(shí)現(xiàn)上述驗(yàn)證操作,則需要借助 Python 解釋器的 -c 參數(shù)來執(zhí)行 import 語句:

mia@ubuntu:~/Desktop$ python2 -c "import flask"
mia@ubuntu:~/Desktop$ pip2 list --format=columns | grep -iE numpy
mia@ubuntu:~/Desktop$ python2 -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy

使用 python -c "import xxx" ,不但比交互式的驗(yàn)證更加高效,更重要的是,能夠?qū)懭肽_本,適用于更多的場景。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容