目錄
1. Python CLI “-m”參數
2. 服務埠測試
3. 本機啟動 web 服務
4. 驗證及格式化 JSON 字串
5. 创建文本编辑器
6. 创建可执行应用程序
7. 编码和解码字符串或文件
8. 获取系统元数据
9. 文件压缩
总结
首頁 後端開發 Python教學 八個無需編寫程式碼即可使用 Python 內建程式庫的方法

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

Apr 12, 2023 am 10:55 AM
python 程式碼 內建庫

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

近年來 Python 語言之所以流行,是因為我們可以用它來寫更少的程式碼來實現複雜的功能。 Python 開發者社群非常歡迎那些封裝了複雜實作但是對使用者十分友善的工具包。

然而,Python 的簡單性不只如此。你能相信我們可以在不寫任何程式碼的情況下使用 Python 嗎?在接下來的文章中,我將介紹 8 個無需編寫任何程式碼即可使用 Python 內建功能的範例。

1. Python CLI “-m”參數

我們先從 Python CLI(命令列介面)開始談起。雖然我們不必編寫程式碼來使用稍後介紹的功能,但為了讓 Python 知道我們要執行的內容,我們需要使用 Python 命令列來進行操作。

只要我們的電腦上安裝了 Python 環境,我們就可以在 Python 命令列介面輸入python --help顯示所有支援的參數。

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

由於指令輸出的內容太長,上圖只顯示了部分內容。這裡最想強調的是-m mod參數,它會將 Python 模組以腳本的形式運作。因此,如果該模組的實作支援命令列操作,我們就可以在命令列直接使用它。接下來就讓我們體驗一下:)

2. 服務埠測試

有時候,我們想測試 ip 連接埠的出站網路流量,通常 telnet 指令是一個不錯的選擇。在 Windows 平台上預設沒有安裝 telnet 軟體,使用前需手動安裝。如果只是進行簡單的測試,未來使用場景也不多,安裝它可能是一種資源浪費。

但是,如果安裝了 Python,那就不必下載安裝 telnet,因為 Python 內建了 telnet 對應的模組。我們可以對 Google 搜尋網站的 443 連接埠進行測試。

python -m telnetlib -d 142.250.70.174 443
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

如上圖所示,網路流量顯示正常,我們甚至收到了來自 Google 空字元的回應。如果我們嘗試存取 ip 的隨機一個端口,則會拋出錯誤,如下圖所示。

python -m telnetlib -d 142.250.70.174 999
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

3. 本機啟動 web 服務

很多 Python 使用者不知道這一點,當第一次聽到後會感到驚訝。是的,我們可以使用 Python 啟動 web 服務,而無需編寫任何程式碼,只需如下在命令列執行以下命令即可。

python -m http.server
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

運行後,顯示該服務監聽了本地的 8000 端口,然後,我們就可以嘗試從瀏覽器進行訪問 http://localhost:8000/。

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

該 web 服務會以根目錄的形式展示在命令啟動路徑下的本機檔案系統,換句話說,我們無法存取它的父級目錄。

你可能會問,這個功能的使用場景是什麼。舉一個例子,如果你想跟你的好夥伴們分享你電腦某個目錄下的許多文字/PDF/圖像檔案/子目錄檔案等,那麼使用這個方法就可以非常輕鬆地進行共享了。

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

如果你想知道更多關於這個主題的內容,可以參考3 Lines of Python Code to Write A Web Server這篇文章。如果你按照上面的文章實作了一個「低程式碼」的解決方案,那麼就可以為它添加更多的自訂功能了。

4. 驗證及格式化 JSON 字串

如果你有一個非常長且未經格式化的 JSON 字串,那麼閱讀起來會非常困難。通常,我會使用一些帶有 JSON 插件的文字編輯器,例如 Sublime 或 VS Code,來格式化 JSON 字串。但是,如果手邊沒有這些工具,Python 可以臨時一用。例如下面會以這個簡短的 JSON 字串進行展示。

echo '{"name": {"first_name":"Chris", "last_name":"Tao"} "age":33}'
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

#

可以看到,当前操作系统的命令行工具只能按照原字符串的原始格式进行展示。但是,如果借助 Python 的 json.tool工具,JSON 字符串就会被很好的格式化。

echo '{"name": {"first_name":"Chris", "last_name":"Tao"} "age":33}' | python -m json.tool
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

Oops!JSON 字符串无效,并且 json.tool 帮助我们定位了问题。我们在名称对象后面漏掉了一个逗号。所以添加逗号以使该 JSON 合法有效。

echo '{"name": {"first_name":"Chris", "last_name":"Tao"}, "age":33}' | python -m json.tool
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

现在,JSON 字符串具有了完美缩进的格式化输出!更加方便阅读。

5. 创建文本编辑器

你没看错,我们可以使用 Python 来”创建”一个文本编辑器。当然,它的功能非常有限,但是如果当前没有更好的选择,使用它会方便很多。另外,功能上肯定无法与 Vim 和 Nanos 相比,但是它完全是基于 UI 编辑器而不是命令行文本形式。这个编辑器由基于 Tkinter 实现的idlelib 模块创建,所以它是可以跨平台运行的。

假设我们要编写一个简单的 Python 程序来显示当前的时间,我想快速编写代码而不想下载和安装庞大的代码编辑工具。现在让我们运行下面这个命令。

mkdir get_time_apppython -m idlelib get_time_app/print_time.py
登入後複製

如果文件目录不存在,idlelib将无法创建,因此如果必要,我们需要创建一个。我们运行完这个命令之后,print_time.py 只有执行保存的情况下才会创建到本地。现在应该会弹出编辑器,我们可以在里面写一些代码, 可以看到代码是支持语法高亮的。

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

现在我们使用ctrl+s快捷键对编辑好的代码进行保存,并关闭编辑窗口。接下来使用命令行查看一下编辑好的代码文件进行验证,没有任何问题。

cat get_time_app/print_time.py
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

6. 创建可执行应用程序

如果我们想要创建一个简单的应用,比如前面写的获取当前时间的应用程序,我们不必再需要像 PyInstaller 这样的第三方工具包,Python 内置的 Zipapp 就可以做到。假设我们要打包成一个"Get Time"的应用,我们可以在命令行运行下面的命令。

python -m zipapp get_time_app -m "print_time:main"
登入後複製

在该命令中,我们只需要给 zipapp设置get_time_app名称,指定 Python 程序的入口文件及其程序入口函数即可。以.pyz为扩展名的文件就是我们创建的应用程序,至此我们就可以将项目作为单个文件而不是文件夹进行分发。

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

该程序的启动方式也很简单,直接使用 Python 进行调用即可。

python get_time_app.pyz
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

7. 编码和解码字符串或文件

通过 Python CLI,我们可以加密字符串或文件。我们以有趣的 ROT13 加密算法为例进行展示。ROT13 是一种偏移 13 位的凯撒密码,它的加密原理如下图所示。

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

我们可以使用 encodings.rot_13 来加密一个字符串,命令如下。

echo "I am Chris" | python -m encodings.rot_13
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

切记,不要将其用于任何真正的加密内容。因为英文有 26 个字母,所以再次运行这个算法我们可以很容易地破译这个加密字符串:)

echo 'V nz Puevf' | python -m encodings.rot_13
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

现在让我们尝试一个更常见的场景——base64 编码。我们可以对字符串进行 base64 编码,如下所示。

echo "I am Chris" | python -m base64
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

接下来,我们也可以使用-d参数对加密字符串进行解码。

echo "SSBhbSBDaHJpcwo=" | python -m base64 -d
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

base64 也经常用在对图像文件的编码和解码上。我们也可以对文件进行如下编码。

python -m base64 get_time_app/print_time.py
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

非常有趣的是,解码后的 Python 脚本可以即时执行,不会报错。。

echo "ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKCgpkZWYgbWFpbigpOgogICAgY3VycmVudF90aW1lID0gZGF0ZXRpbWUubm93KCkKICAgIHByaW50KGYnQ3VycmVudCB0aW1lIGlzIHtjdXJyZW50X3RpbWV9LicpCgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIG1haW4oKQo=" | python -m base64 -d | python
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

8. 获取系统元数据

如果我们想获取当前的系统信息,Python 提供了一种非常简便的方法。我们只需要运行下面的命令即可。

python -m sysconfig
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

可以看到,这个命令执行后会显示所有的系统配置信息,比如 Python 环境路径和环境变量等。上面的截图仅仅展示了一部分内容,实际显示的内容会非常丰富。如果我们只想展示 Python 环境路径和当前工作路径,我们可以执行下面的命令。

python -m site
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

9. 文件压缩

我们可以使用 Python 来压缩文件,而无需下载 tar/zip/gzip 等工具。举个例子,如果我们想压缩我们刚刚在第 4 节中编写的应用程序,我们可以运行以下命令将文件夹压缩到 zip 文件中。在命令中,选项 -c 代表的是“create”即创建的含义。

python -m zipfile -c get_time_app.zip get_time_app
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

当然,我们也可以对压缩文件进行解压。紧接这上面的操作,我们把文件夹解压出来放到一个新目录中,这样就不会和原来的目录冲突了。在下面的命令中,选项 -e 代表“extract”即解压的含义。

python -m zipfile -e get_time_app.zip get_time_app_extracted
登入後複製

如果不放心,我们可以检验一下。

ls get_time_app_extractedcat get_time_app_extracted/get_time_app/print_time.py
登入後複製

八個無需編寫程式碼即可使用 Python 內建程式庫的方法

我们刚刚以 zip 文件为例进行了展示,Python 除了支持 zip 格式的解压缩以外,还支持 tar 和 gzip 的解压缩。

总结

该篇文章中介绍了一种无需编写任何代码即可使用 Python 内置库的方法。如果在某些场景下能够想到使用这些方法,毫无疑问可以给我们提供很多的便利。希望这篇文章能够给大家带来启发和帮助。

以上是八個無需編寫程式碼即可使用 Python 內建程式庫的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HadiDB:Python 中的輕量級、可水平擴展的數據庫 HadiDB:Python 中的輕量級、可水平擴展的數據庫 Apr 08, 2025 pm 06:12 PM

HadiDB:輕量級、高水平可擴展的Python數據庫HadiDB(hadidb)是一個用Python編寫的輕量級數據庫,具備高度水平的可擴展性。安裝HadiDB使用pip安裝:pipinstallhadidb用戶管理創建用戶:createuser()方法創建一個新用戶。 authentication()方法驗證用戶身份。 fromhadidb.operationimportuseruser_obj=user("admin","admin")user_obj.

Navicat查看MongoDB數據庫密碼的方法 Navicat查看MongoDB數據庫密碼的方法 Apr 08, 2025 pm 09:39 PM

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

2小時的Python計劃:一種現實的方法 2小時的Python計劃:一種現實的方法 Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序 Python:探索其主要應用程序 Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

如何針對高負載應用程序優化 MySQL 性能? 如何針對高負載應用程序優化 MySQL 性能? Apr 08, 2025 pm 06:03 PM

MySQL數據庫性能優化指南在資源密集型應用中,MySQL數據庫扮演著至關重要的角色,負責管理海量事務。然而,隨著應用規模的擴大,數據庫性能瓶頸往往成為製約因素。本文將探討一系列行之有效的MySQL性能優化策略,確保您的應用在高負載下依然保持高效響應。我們將結合實際案例,深入講解索引、查詢優化、數據庫設計以及緩存等關鍵技術。 1.數據庫架構設計優化合理的數據庫架構是MySQL性能優化的基石。以下是一些核心原則:選擇合適的數據類型選擇最小的、符合需求的數據類型,既能節省存儲空間,又能提升數據處理速度

如何將 AWS Glue 爬網程序與 Amazon Athena 結合使用 如何將 AWS Glue 爬網程序與 Amazon Athena 結合使用 Apr 09, 2025 pm 03:09 PM

作為數據專業人員,您需要處理來自各種來源的大量數據。這可能會給數據管理和分析帶來挑戰。幸運的是,兩項 AWS 服務可以提供幫助:AWS Glue 和 Amazon Athena。

redis怎麼啟動服務器 redis怎麼啟動服務器 Apr 10, 2025 pm 08:12 PM

啟動 Redis 服務器的步驟包括:根據操作系統安裝 Redis。通過 redis-server(Linux/macOS)或 redis-server.exe(Windows)啟動 Redis 服務。使用 redis-cli ping(Linux/macOS)或 redis-cli.exe ping(Windows)命令檢查服務狀態。使用 Redis 客戶端,如 redis-cli、Python 或 Node.js,訪問服務器。

redis怎麼讀取隊列 redis怎麼讀取隊列 Apr 10, 2025 pm 10:12 PM

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

See all articles