最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python標(biāo)準(zhǔn)庫中隱藏的利器(示例詳解)

 更新時間:2023年11月13日 09:10:32   作者:wang_yb  
在命令行中直接使用Python標(biāo)準(zhǔn)庫的模塊,最大的好處就是就是不用寫代碼,就能使用其中的功能,當(dāng)臨時需要一些某些功能的時候,用這種方式會快捷,方便很多,這篇文章主要介紹了Python標(biāo)準(zhǔn)庫中隱藏的利器,需要的朋友可以參考下

Python安裝之后,其標(biāo)準(zhǔn)庫中有的模塊,不一定要通過代碼來引用,還可以直接在命令行中使用的。

在命令行中直接使用Python標(biāo)準(zhǔn)庫的模塊,最大的好處就是就是不用寫代碼,就能使用其中的功能,當(dāng)臨時需要一些某些功能的時候,用這種方式會快捷,方便很多。

1. 命令行中使用模塊

命令行中使用python標(biāo)準(zhǔn)庫的模塊,一般格式如下:

python -m <mod-name> <options>

其中,mod-name 是模塊的名稱;options 是模塊的參數(shù)。

本篇列舉的是我自己在命令行中常用的一些模塊,并不是所有可在命令行中可用的模塊。
其它好用的模塊,歡迎大家推薦。

2. http.server:靜態(tài)文件服務(wù)

http.server 模塊的參數(shù)主要有:

python -m http.server -h
usage: server.py [-h] [--cgi] [-b ADDRESS] [-d DIRECTORY] [-p VERSION] [port]
positional arguments:
  port                  bind to this port (default: 8000)
options:
  -h, --help            show this help message and exit
  --cgi                 run as CGI server
  -b ADDRESS, --bind ADDRESS
                        bind to this address (default: all interfaces)
  -d DIRECTORY, --directory DIRECTORY
                        serve this directory (default: current directory)
  -p VERSION, --protocol VERSION
                        conform to this HTTP version (default: HTTP/1.0)

主要的參數(shù):

  • -b:如果需要讓局域網(wǎng)的其他機器訪問,可以設(shè)置 -b 0.0.0.0
  • -d:設(shè)置靜態(tài)文件服務(wù)的根目錄

創(chuàng)建一個目錄作為靜態(tài)文件服務(wù)的根目錄,并放入一個index.html文件。
html文件內(nèi)容:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>http.server</title>
  </head>
  <body>
    <h1>hello</h1>
    <br />
    <h1>python -m http.server</h1>
  </body>
</html>

啟動服務(wù),效果如下:

python -m http.server -d ./sample-site

3. gzip:壓縮/解壓縮

gzip模塊可用來壓縮,解壓縮文件。

python -m gzip -h
usage: gzip.py [-h] [--fast | --best | -d] [file ...]
A simple command line interface for the gzip module: act like gzip, but do not delete the input file.
positional arguments:
  file
options:
  -h, --help        show this help message and exit
  --fast            compress faster
  --best            compress better
  -d, --decompress  act like gunzip instead of gzip

壓縮文件:

python -m gzip test.txt
# 會生成一個 test.txt.gz 文件

解壓文件(-d 參數(shù)用來解壓):

python -m gzip -d test.txt.gz
# 會解壓出 test.txt 文件

4. base64:編碼解碼文件

當(dāng)我們臨時要用base64來編碼或解碼字符串的時候,可以用這個模塊。

python -m base64 -h
usage: D:\miniconda3\envs\databook\Lib\base64.py [-h|-d|-e|-u|-t] [file|-]
        -h: print this help message and exit
        -d, -u: decode
        -e: encode (default)
        -t: encode and decode string 'Aladdin:open sesame'

base64編碼一個字符串:

echo "abcdefg" | python -m base64
YWJjZGVmZw0K

解碼base64字符串:用上面編碼后的base64來還原。

echo "YWJjZGVmZw0K" | python -m base64 -d
abcdefg

5. json.tool:更好的顯示json結(jié)構(gòu)

這個工具對于經(jīng)常使用命令行的人來說,非常有用。
從命令行訪問某些API接口的時候,返回的json數(shù)據(jù)往往是壓縮在一行,很難閱讀。

json.tool模塊的參數(shù)很多,但是一般大部分情況下是不需要設(shè)置的,
使用參數(shù)的默認(rèn)值就可以了:

python -m json.tool -h
usage: python -m json.tool [-h] [--sort-keys] [--no-ensure-ascii] [--json-lines]
                           [--indent INDENT | --tab | --no-indent | --compact]
                           [infile] [outfile]
A simple command line interface for json module to validate and pretty-print JSON objects.
positional arguments:
  infile             a JSON file to be validated or pretty-printed
  outfile            write the output of infile to outfile
options:
  -h, --help         show this help message and exit
  --sort-keys        sort the output of dictionaries alphabetically by key
  --no-ensure-ascii  disable escaping of non-ASCII characters
  --json-lines       parse input using the JSON Lines format. Use with --no-indent or --compact to produce valid
                     JSON Lines output.
  --indent INDENT    separate items with newlines and use this number of spaces for indentation
  --tab              separate items with newlines and use tabs for indentation
  --no-indent        separate items with spaces rather than newlines
  --compact          suppress all whitespace separation (most compact)

比如下面的json字符串:

echo '{"code":0,"message":"success""data":[{"name":"harry"},{"name":"joe"}]}' | python -m json.tool
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "name": "harry"
        },
        {
            "name": "joe"
        }
    ]
}

6. calendar:日歷信息

calendar這個模塊相當(dāng)于是個命令行下的日歷。
可以指定某一年的日歷(默認(rèn)是當(dāng)前年的):

python -m calendar 2022

也可以指定某一年某個月的日歷:

python -m calendar 2023 10

這個命令還可以把日歷轉(zhuǎn)換成HTML格式導(dǎo)出,具體可以看它的help信息。

7. ast:顯示代碼的抽象語法數(shù)

這個ast模塊就強大了,它可以將原始的python代碼轉(zhuǎn)換為抽象語法樹。
基于抽象語法樹,可以做一些底層的代碼分析,代碼生成,甚至轉(zhuǎn)換成其它語言的代碼等等。

ast模塊的參數(shù)不多,一般用默認(rèn)參數(shù)即可:

python -m ast -h
usage: python -m ast [-h] [-m {exec,single,eval,func_type}] [--no-type-comments] [-a] [-i INDENT] [infile]
positional arguments:
  infile                the file to parse; defaults to stdin
options:
  -h, --help            show this help message and exit
  -m {exec,single,eval,func_type}, --mode {exec,single,eval,func_type}
                        specify what kind of code must be parsed
  --no-type-comments    don't add information about type comments
  -a, --include-attributes
                        include attributes such as line numbers and column offsets
  -i INDENT, --indent INDENT
                        indentation of nodes (number of spaces)

下面構(gòu)造一個python代碼文件(main.py),內(nèi)容比較簡單,就是一個累加的功能。

# -*- coding: utf-8 -*-
def sum(start, end):
    sum = 0
    for i in range(start, end + 1):
        sum += i
    print("1+2+...+10 = {}".format(sum))
if __name__ == "__main__":
    sum(1, 10)

轉(zhuǎn)換之后的抽象語法樹為:

python -m ast main.py
Module(
   body=[
      FunctionDef(
         name='sum',
         args=arguments(
            posonlyargs=[],
            args=[
               arg(arg='start'),
               arg(arg='end')],
               ...省略...
         body=[
            Assign(
               targets=[
                  Name(id='sum', ctx=Store())],
               value=Constant(value=0)),
            For(
               target=Name(id='i', ctx=Store()),
               ...省略...
               orelse=[]),
            Expr(
               value=Call(
               ...省略...
                  keywords=[]))],
         decorator_list=[]),
      If(
         test=Compare(
               ...省略...
         orelse=[])],
   type_ignores=[])

轉(zhuǎn)換后的內(nèi)容比較長,中間我省略一些內(nèi)容。
對完整的內(nèi)容感興趣,可以自己試試轉(zhuǎn)換一個python代碼文件。

到此這篇關(guān)于Python標(biāo)準(zhǔn)庫中隱藏的利器的文章就介紹到這了,更多相關(guān)Python標(biāo)準(zhǔn)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • wxPython:python首選的GUI庫實例分享

    wxPython:python首選的GUI庫實例分享

    wxPython是Python語言的一套優(yōu)秀的GUI圖形庫。允許Python程序員很方便的創(chuàng)建完整的、功能鍵全的GUI用戶界面。 wxPython是作為優(yōu)秀的跨平臺GUI庫wxWidgets的Python封裝和Python模塊的方式提供給用戶的
    2019-10-10
  • python運行時間的幾種方法

    python運行時間的幾種方法

    這篇文章主要為大家詳細介紹了python運行時間的幾種方法,分析每一種運行時間方法的利弊,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 使用Python實現(xiàn)帶進度條的異步多文件下載器

    使用Python實現(xiàn)帶進度條的異步多文件下載器

    本文詳細介紹了如何使用?Python?+?asyncio?+?aiohttp?+?tqdm?實現(xiàn)一個?帶進度條的異步多文件下載器,文中的示例代碼講解詳細,有需要的可以了解下
    2025-11-11
  • Django模型驗證器介紹與源碼分析

    Django模型驗證器介紹與源碼分析

    這篇文章主要給大家介紹了關(guān)于Django模型驗證器與源碼分析的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 一篇文章快速了解Python的GIL

    一篇文章快速了解Python的GIL

    這篇文章主要介紹了一篇文章快速了解Python的GIL,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python異常捕獲以及簡單錯誤日志生成方式

    Python異常捕獲以及簡單錯誤日志生成方式

    這篇文章主要介紹了Python異常捕獲以及簡單錯誤日志生成方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python實現(xiàn)字典按key或者value進行排序操作示例【sorted】

    Python實現(xiàn)字典按key或者value進行排序操作示例【sorted】

    這篇文章主要介紹了Python實現(xiàn)字典按key或者value進行排序操作,結(jié)合實例形式分析了Python針對字典按照key或者value進行排序的相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Python一鍵實現(xiàn)統(tǒng)計本地文件或壓縮包的代碼行數(shù)

    Python一鍵實現(xiàn)統(tǒng)計本地文件或壓縮包的代碼行數(shù)

    本文主要介紹了一個Python腳本,用于一鍵統(tǒng)計本地文件夾或壓縮包的代碼行數(shù),包括代碼行數(shù)、空白行數(shù)、注釋行數(shù)、總行數(shù)等,文中的示例代碼講解詳細,希望對大家有所幫助
    2026-05-05
  • python 將字符串中的數(shù)字相加求和的實現(xiàn)

    python 將字符串中的數(shù)字相加求和的實現(xiàn)

    這篇文章主要介紹了python 將字符串中的數(shù)字相加求和的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 詳解Django中CSRF和CORS的區(qū)別

    詳解Django中CSRF和CORS的區(qū)別

    本文主要介紹了詳解Django中CSRF和CORS的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

普定县| 仙居县| 阜城县| 五大连池市| 车险| 牟定县| 名山县| 绵竹市| 鸡西市| 潜山县| 彩票| 京山县| 来安县| 高青县| 孟州市| 宝兴县| 于田县| 迁西县| 黄大仙区| 蓬安县| 涟源市| 乌鲁木齐市| 汶上县| 贵溪市| 古蔺县| 林甸县| 教育| 渝北区| 林州市| 新邵县| 武宁县| 东城区| 寿宁县| 东丰县| 永兴县| 和政县| 石首市| 阿克陶县| 扎兰屯市| 科技| 河北省|