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

python獲取指定名字的程序的文件路徑的兩種方法

 更新時(shí)間:2025年09月03日 11:27:48   作者:Hello,Mr Crab  
本文主要介紹了python獲取指定名字的程序的文件路徑的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近在做項(xiàng)目,需要用到給定一個(gè)程序名字就可以自動(dòng)獲取到這個(gè)程序在windows系統(tǒng)下的絕對(duì)路徑,以下是我的兩個(gè)思路:

1.使用os直接遍歷所有磁盤(pán)下的所有文件夾,直到找到為止

import os
#示例代碼以尋找微信的WeChat.exe路徑為例,其結(jié)構(gòu)為:

def find_wechat_path_in_windows():
    wechat_path=None
    #獲得所有磁盤(pán)分區(qū)
    disk_partitions=psutil.disk_partitions(all=True)
    disks=[disk.mountpoint for disk in disk_partitions]
    #dirs內(nèi)存放每個(gè)磁盤(pán)下的所有文件夾列表 os.listdir返回值為list
    dirs=[os.listdir(disk) for disk in disks]
    #使用zip方法將磁盤(pán)與其下的所有文件夾列表構(gòu)成鍵值對(duì)
    #形如:{'C':['programfiles','User','programfiles(X86)'],'D':['Games','python312']}
    Paths=dict(zip(disks,dirs))
    #遍歷磁盤(pán)下的所有文件夾
    for disk in Paths:
        if 'WeChat' in Paths.get(disk):
            wechat_path=os.path.join(disk,'WeChat','WeChat.exe')
            break
        elif 'Tencent' in Paths.get(disk):
            wechat_path=os.path.join(disk,'Tencent','WeChat','WeChat.exe')
            break
        else:
            folders=[dirname for dirname in Paths.get(disk) if os.path.isdir(os.path.join(disk,dirname))]
            for folder in folders:
                root_dir=os.path.join(disk,folder)
                for dirpath,dirnames,filenames in os.walk(root_dir):
                    if 'WeChat.exe' in filenames:
                        wechat_path=os.path.join(dirpath,'WeChat.exe')
                        break
    return wechat_path
print(find_wechat_path_in_windows())

這樣查找起來(lái)目標(biāo)應(yīng)用程序的路徑十分耗時(shí),特別是當(dāng)你的磁盤(pán)內(nèi)的一些文件夾的嵌套深度特別大的時(shí)候(windows系統(tǒng)下文件夾最大嵌套深度為83)

2.先啟動(dòng)要運(yùn)行的程序,然后通過(guò)psutil.process_itar遍歷進(jìn)程池,并比較要查找的微信exe文件與進(jìn)程池中所有進(jìn)程名稱(chēng)若名稱(chēng)一致則結(jié)束循環(huán),在這里我們主要用到process_itar返回值中的name與exe屬性,其中name為當(dāng)前正在執(zhí)行的進(jìn)程的名稱(chēng),exe為當(dāng)前正在執(zhí)行進(jìn)程的文件路徑

import win32clipboard
import psutil
def find_wechat_path_in_windows(copy_to_clipboard:bool=True):
     '''該方法通過(guò)遍歷當(dāng)前系統(tǒng)下所有進(jìn)程查找正在運(yùn)行的微信的路徑,你可以將Wechat.exe替換為你需        
    要的應(yīng)用
     '''
     for process in psutil.process_iter(['name','exe']):
         if 'WeChat.exe' in process.info['name']:
             wechat_path=process.info['exe']
             break
     if wechat_path:
         if copy_to_clipboard:
             win32clipboard.OpenClipboard()
             win32clipboard.EmptyClipboard()
             win32clipboard.SetClipboardText(wechat_path)
             win32clipboard.CloseClipboard()
             print("已將微信程序路徑復(fù)制到剪貼板")
         return wechat_path
     else:
         print(f'微信未啟動(dòng),請(qǐng)啟動(dòng)后再調(diào)用此函數(shù)!')

相較于第一種方法,第二種方法更加省時(shí)省力

到此這篇關(guān)于python獲取指定名字的程序的文件路徑的兩種方法的文章就介紹到這了,更多相關(guān)python獲取指定名字文件路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python Matplotlib庫(kù)實(shí)現(xiàn)畫(huà)局部圖

    Python Matplotlib庫(kù)實(shí)現(xiàn)畫(huà)局部圖

    這篇文章主要為大家詳細(xì)介紹了Python Matplotlib庫(kù)實(shí)現(xiàn)畫(huà)局部圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • python中函數(shù)傳參的多種方式

    python中函數(shù)傳參的多種方式

    本文主要介紹了Python中函數(shù)傳參的幾種方式,包括位置參數(shù)、關(guān)鍵字參數(shù)、缺省參數(shù)和不定長(zhǎng)參數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • python基礎(chǔ)教程項(xiàng)目三之萬(wàn)能的XML

    python基礎(chǔ)教程項(xiàng)目三之萬(wàn)能的XML

    這篇文章主要為大家詳細(xì)介紹了python基礎(chǔ)教程項(xiàng)目三之萬(wàn)能的XML,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python實(shí)現(xiàn)網(wǎng)頁(yè)錄音效果

    python實(shí)現(xiàn)網(wǎng)頁(yè)錄音效果

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)網(wǎng)頁(yè)錄音效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5信號(hào)與槽機(jī)制、自定義信號(hào)基礎(chǔ)介紹

    python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5信號(hào)與槽機(jī)制、自定義信號(hào)基礎(chǔ)介紹

    這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5信號(hào)與槽機(jī)制基礎(chǔ)介紹,需要的朋友可以參考下
    2020-02-02
  • python設(shè)置表格邊框的具體方法

    python設(shè)置表格邊框的具體方法

    在本篇文章里小編給大家整理的是關(guān)于python設(shè)置表格邊框的具體方法及相關(guān)代碼,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • 非遞歸的輸出1-N的全排列實(shí)例(推薦)

    非遞歸的輸出1-N的全排列實(shí)例(推薦)

    下面小編就為大家?guī)?lái)一篇非遞歸的輸出1-N的全排列實(shí)例(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Python壓縮包處理模塊zipfile和py7zr操作代碼

    Python壓縮包處理模塊zipfile和py7zr操作代碼

    目前對(duì)文件的壓縮和解壓縮比較常用的格式就是zip格式和7z格式,這篇文章主要介紹了Python壓縮包處理模塊zipfile和py7zr,需要的朋友可以參考下
    2022-06-06
  • 使用PyTorch處理多維特征輸入數(shù)據(jù)的完美實(shí)現(xiàn)

    使用PyTorch處理多維特征輸入數(shù)據(jù)的完美實(shí)現(xiàn)

    在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域,我們經(jīng)常會(huì)面對(duì)具有多維特征輸入的問(wèn)題,這種情況出現(xiàn)在各種應(yīng)用中,包括圖像識(shí)別、自然語(yǔ)言處理、時(shí)間序列分析等,PyTorch是一個(gè)強(qiáng)大的深度學(xué)習(xí)框架,在本篇博客中,我們將探討如何使用PyTorch來(lái)處理多維特征輸入數(shù)據(jù)
    2023-10-10
  • Python基礎(chǔ)學(xué)習(xí)之函數(shù)方法實(shí)例詳解

    Python基礎(chǔ)學(xué)習(xí)之函數(shù)方法實(shí)例詳解

    這篇文章主要介紹了Python基礎(chǔ)學(xué)習(xí)之函數(shù)方法,結(jié)合實(shí)例形式分析了Python函數(shù)方法的定義、參數(shù)、復(fù)用和繼承相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

永城市| 盖州市| 汉阴县| 和龙市| 大荔县| 甘泉县| 满洲里市| 邻水| 北票市| 东乡| 福鼎市| 年辖:市辖区| 长海县| 高州市| 定陶县| 溧阳市| 清水县| 财经| 浙江省| 南丹县| 崇礼县| 奇台县| 巴楚县| 鄂托克前旗| 绥江县| 个旧市| 中西区| 常州市| 南靖县| 平泉县| 从化市| 青阳县| 商南县| 信宜市| 五大连池市| 萨迦县| 广东省| 望谟县| 寿宁县| 雅安市| 来安县|