pywin32,一個超強的 Python 庫!

6021f72c367485dfeb05c7c5eb84ac70.png

更多Python學習內容:ipengtao.com

大家好,今天為大家分享一個超強的 Python 庫 - pywin32。

Github地址:https://github.com/mhammond/pywin32


在Python的世界里,有許多優秀的第三方庫可以幫助開發者更輕松地處理各種任務。其中,pywin32庫是一個特別引人注目的工具,它提供了對Windows API的完整訪問,使得開發者能夠利用Python來編寫強大的Windows應用程序,從簡單的腳本到復雜的桌面應用,pywin32都能勝任。

什么是pywin32庫?

pywin32庫是Python的一個擴展模塊,它提供了對Windows API(應用程序編程接口)的訪問,使得Python程序能夠直接與Windows操作系統進行交互。這意味著可以利用Python來操作文件系統、注冊表、服務,甚至是與Windows應用程序進行通信。

安裝pywin32庫

在開始使用pywin32之前,首先需要安裝它。

可以通過pip來安裝pywin32:

pip?install?pywin32

安裝完成后,就可以開始探索pywin32的強大功能了。

基本功能

1. 操作文件系統

pywin32使得文件和文件夾的操作變得十分簡單。

例如,可以輕松地創建、復制、刪除文件或文件夾:

import?os
import?win32file#?創建文件夾
os.mkdir("C:\\test_folder")#?復制文件
win32file.CopyFile("source.txt",?"destination.txt",?False)#?刪除文件夾
os.rmdir("C:\\test_folder")

2. 操作注冊表

通過pywin32,可以方便地讀取、寫入和刪除Windows注冊表中的鍵和值:

import?win32api#?讀取注冊表鍵值
value?=?win32api.RegQueryValueEx(win32con.HKEY_CURRENT_USER,?"Software\\Microsoft\\Windows\\CurrentVersion\\Run",?0,?win32con.REG_SZ)#?寫入注冊表鍵值
win32api.RegSetValueEx(win32con.HKEY_CURRENT_USER,?"Software\\MyApp",?0,?win32con.REG_SZ,?"C:\\MyApp\\myapp.exe")#?刪除注冊表鍵值
win32api.RegDeleteKey(win32con.HKEY_CURRENT_USER,?"Software\\MyApp")

3. 與Windows服務交互

pywin32也提供了與Windows服務進行交互的功能。

可以啟動、停止、暫停和繼續服務,甚至查詢服務的狀態:

import?win32serviceutil#?啟動服務
win32serviceutil.StartService("MyService")#?停止服務
win32serviceutil.StopService("MyService")#?暫停服務
win32serviceutil.PauseService("MyService")#?繼續服務
win32serviceutil.ResumeService("MyService")#?查詢服務狀態
status?=?win32serviceutil.QueryServiceStatus("MyService")

應用場景及示例代碼

1. 自動化任務

pywin32可以用于編寫自動化腳本,執行各種Windows操作系統相關的任務。比如,可以編寫一個腳本來定時清理系統臨時文件或者備份重要數據到指定目錄。

import?os
import?shutil#?清理臨時文件
temp_folder?=?os.path.join(os.environ["TEMP"],?"temp_folder")
if?os.path.exists(temp_folder):shutil.rmtree(temp_folder)

2. Windows應用程序控制

通過pywin32,可以控制已經運行的Windows應用程序,比如關閉指定的程序窗口或者向特定程序發送命令。

import?win32gui#?關閉記事本程序
notepad_handle?=?win32gui.FindWindow(None,?"Untitled?-?Notepad")
if?notepad_handle?!=?0:win32gui.PostMessage(notepad_handle,?win32con.WM_CLOSE,?0,?0)

3. 監控系統狀態

可以編寫一個腳本來監控系統的狀態,比如CPU、內存的占用情況,或者檢查系統中是否運行了特定的進程。

import?psutil#?獲取CPU占用率
cpu_percent?=?psutil.cpu_percent()#?獲取內存占用率
memory_percent?=?psutil.virtual_memory().percentprint("CPU占用率:{}%".format(cpu_percent))
print("內存占用率:{}%".format(memory_percent))

總結

通過本文,了解了pywin32庫的基本功能和使用方法,并通過示例展示了如何在實際應用中使用pywin32。pywin32為開發者提供了在Windows平臺上進行高效編程的能力,可以更輕松地處理各種與Windows操作系統相關的任務。如果是一個Python開發者,并且需要與Windows進行交互,那么pywin32絕對是你不可或缺的利器之一。無論是操作文件系統、注冊表,還是與Windows服務交互,pywin32都能輕松完成任務。開始使用pywin32,讓Python程序在Windows平臺上發揮更大的作用吧!

如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續輸出更多優質文章的最強動力!


如果想要系統學習Python、Python問題咨詢,或者考慮做一些工作以外的副業,都可以掃描二維碼添加微信,圍觀朋友圈一起交流學習。

befb417ddae3a17078c671263ac76f34.gif

我們還為大家準備了Python資料和副業項目合集,感興趣的小伙伴快來找我領取一起交流學習哦!

22db389e160e27aa64888ba2742dba3d.jpeg

往期推薦

歷時一個月整理的 Python 爬蟲學習手冊全集PDF(免費開放下載)

Python基礎學習常見的100個問題.pdf(附答案)

學習 數據結構與算法,這是我見過最友好的教程!(PDF免費下載)

Python辦公自動化完全指南(免費PDF)

Python Web 開發常見的100個問題.PDF

肝了一周,整理了Python 從0到1學習路線(附思維導圖和PDF下載)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718660.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【性能】后臺與黑屏

目錄 現象觀察 調整應用的電池策略 現象觀察 切換到后臺, 一個心跳期間,就會發close socket 直接黑屏,沒有收到任何消息,直接到onclose,然后有離線觸發 也到時間。 調整應用的電池策略 修改成“無限制”后,就不會斷…

C#面:簡單介紹 序列化 和 反序列化

序列化: 是將對象轉換為可保持或可傳輸的形式的過程。 .NET 具有以下序列化技術: 二進制序列化保持類型保真,這對于多次調用應用程序時保持對象狀態非常有用。 例如,通過將對象序列化到剪貼板,可在不同的應用程序之…

Linxu自動化構建工具make/Makefile究竟時什么?

Linxu自動化構建工具make/Makefile究竟時什么? 一、簡介二、makefile文件制作(簡潔版)2.1 源文件2.2 makefile如何制作2.2.1 依賴關系、依賴方法2.2.3 偽目標(清理文件資源) 三、make/Makefile自動化原理3.1 偽目標為什…

SpringBoot+Vue實現el-table表頭篩選排序(附源碼)

👨?💻作者簡介:在笑大學牲 🎟?個人主頁:無所謂^_^ ps:點贊是免費的,卻可以讓寫博客的作者開心好幾天😎 前言 后臺系統對table組件的需求是最常見的,不過element-ui的el…

Grpc項目集成到java方式調用實踐

背景:由于項目要對接到grcp 的框架,然后需要對接老外的東西,還有簽名和證書剛開始沒有接觸其實有點懵逼。 gRPC 是由 Google 開發的高性能、開源的遠程過程調用(RPC)框架。它建立在 HTTP/2 協議之上,使用 …

D7805 正電壓穩壓電路應用——體積小,成本低,性能好

D7805 構成的 5V 穩壓電源為輸出電壓5V,輸出電流 1000mA 的穩壓電源它由濾波電容 C1,C3,防止自激電容 C2、C3 和一只固定三端穩壓器(7805)后級加 LC 濾波極為簡潔方便地搭成,輸入直流電壓范圍為 7~35V,此直流電壓經過D…

yolov8-更換卷積模塊-ContextGuidedBlock_Down

源碼解讀 class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate2, reduction16):"""args:nIn: the channel of input fea…

Hack The Box-Bizness

目錄 信息收集 nmap dirsearch WEB Get shell 提權 get user flag get root flag 信息收集 nmap 端口掃描┌──(root?ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.252 --min-rate 10000 -oA port Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 1…

實測VLLM的加速效果

為了測試vllm的并行加速效果,采用同樣的5個提問,編寫兩個不同的python腳本,分別是compare_vllm.py和compare_chatglm3.py,其中compare_vllm.py采用vllm加速。 服務器參數: 操作系統ubuntu 22.04CPUi7 14700k內存dd5 …

hive中常見參數優化總結

1.with as 的cte優化,一般開發中習慣使用with as方便閱讀,但如果子查詢結果在下游被多次引用,可以使用一定的參數優化手段減少表掃描次數 默認set hive.optimize.cte.materialize.threshold-1;不自動物化到內存,一般可以設置為 se…

力扣 第 387 場周賽 解題報告 | 珂學家 | 離散化樹狀數組 + 模擬場

前言 整體評價 手速場模擬場,思路和解法都蠻直接的。 所以搞點活 如果T2,如果不固定左上角,批量查詢某個點為左上角,求滿足總和 ≤ k \le k ≤k的子矩陣個數 如果T2,如果不固定左上角,求總和 ≤ k \le k…

Spring的Bean的生命周期 | 有圖有案例

Spring的Bean的生命周期 Spring的Bean的生命周期整體過程實例化初始化服務銷毀循環依賴問題 完整生命周期演示 Spring的Bean的生命周期 Spring Bean的生命周期:從Bean的實例化之后,通過反射創建出對象之后,到Bean稱為一個完整的對象&#xf…

EXPLAIN:mysql 執行計劃分析詳解

目錄 EXPLAIN命令 查看執行計劃 分析執行計劃 優化查詢 EXPLAIN中的 type 列類型 在MySQL中,你可以使用EXPLAIN命令來生成查詢的執行計劃。EXPLAIN命令可以顯示MySQL如何使用鍵來處理SELECT和DELETE語句,以及INSERT或UPDATE語句的WHERE子句。這對于…

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么?

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么? 鑒權功能:SRS Stack支持通過系統配置中的OpenAPI獲取Bearer鑒權,并可以嘗試HTTP API。用戶可以通過點擊網頁上的按鈕請求HTTP API,或者使用cu…

快上車:什么是人工智能?人工智能和普通程序的區別

什么是人工智能? 雖然AI歷史很悠久,上個世紀50年代就有各種概念,但是發展很慢。第一次對人類的沖擊就是1997年IBM深藍擊敗國際象棋世界冠軍,引起了人們的廣泛關注,之后又銷聲匿跡。突然間2016人工智能alphaGO戰勝了圍…

具身智能計算系統,機器人時代的 Android | 新程序員

【導讀】具身智能作為一種新興的研究視角和方法論,正在刷新我們對智能本質及其發展的理解:傳統的 AI 模型往往將智能視為一種獨立于實體存在的抽象能力,而具身智能則主張智能是實體與其環境持續互動的結果。 本文深度剖析了具身智能計算系統…

【CSS】初學了解Grid布局

目錄 什么是Grid布局如何開始使用Grid布局Grid容器的屬性Grid項目的屬性舉個例子 什么是Grid布局 Grid布局是一種二維的布局系統,它允許我們在水平和垂直方向上同時控制網格中的項目位置。通過將頁面劃分為行和列,我們可以輕松地創建出復雜的布局結構&a…

程序員如何選擇職業賽道?

一、自我評估與興趣探索 程序員選擇職業賽道時,可以考慮以下幾個關鍵因素: 1、興趣與熱情:首先要考慮自己的興趣和熱情,選擇符合個人喜好和激情的領域,能夠激勵自己持續學習和進步。 2、技術能力&am…

2.python72變筆記(自用未修改版)

以前寫的python筆記 1.二進制與字符編碼 #8bit(位)1byte(字節) #1024byte 1KB 千字節 #1024KB 1MB 兆字節 #1024MB 1TB 太字節 print(chr(0b100111001010000)) print(ord("陳")) #ord 十進制 #無論英語還是漢語在計算…

mysql5.7配置主從

原理: MySQL主從復制的工作原理如下:1. 主服務器產生Binlog日志當主服務器的數據庫發生數據修改操作時,如INSERT、UPDATE、DELETE語句執行,主服務器會記錄這些操作的日志信息到二進制日志文件中。2. 從服務器讀取Binlog日志 從服務器會向主服務器發送請求,主服務器把…