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

python啟動(dòng)應(yīng)用程序和終止應(yīng)用程序的方法

 更新時(shí)間:2019年06月28日 11:16:32   作者:jolingcome  
今天小編就為大家分享一篇python啟動(dòng)應(yīng)用程序和終止應(yīng)用程序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1. 目的

每天上班,工作需要,電腦上需要每天開(kāi)機(jī)啟動(dòng)一些軟件,下班時(shí)候,需要關(guān)掉一些軟件。一個(gè)一個(gè)打開(kāi)和關(guān)閉貌似是很繁瑣的,于是乎,這個(gè)腳本產(chǎn)生了。

2. 環(huán)境

系統(tǒng)環(huán)境:

- win7-32位

- python 2.7.9

你還需要安裝pywin32。

pip install pywin32

3. 編寫(xiě)腳本

啟動(dòng)應(yīng)用程序腳本

#coding=utf-8
 
import win32api
#日?qǐng)?bào)軟件啟動(dòng)
win32api.ShellExecute(0, 'open', r'C:\Program Files\Pudding\Pudding.exe', '','',1)
 
#OA啟動(dòng)
win32api.ShellExecute(0, 'open', r'C:\Program Files\Tongda\ispirit\ispiritPro.exe', '','',1)
 
#QQ啟動(dòng)
win32api.ShellExecute(0, 'open', r'D:\QQ\Bin\QQ.exe', '','',1)
 
#......
#當(dāng)然你還可以添加很多你需要啟動(dòng)的軟件

終止應(yīng)用程序腳本

#coding=utf-8
 
import os
 
#終止QQ軟件
os.system("taskkill /F /IM QQ.exe")
 
#終止日?qǐng)?bào)訂餐軟件
os.system("taskkill /F /IM Pudding.exe")
 
#終止OA軟件
os.system("taskkill /F /IM ispiritPro.exe")
 
#......
#當(dāng)然你還可以添加很多你需要終止的軟件

4. 制作exe

最后把這兩個(gè)腳本制作成exe程序文件,放到桌面上,每次都可以很方便的使用。

python 調(diào)用系統(tǒng)命令,執(zhí)行命令行

python中調(diào)用系統(tǒng)命令的方法還是有比較多的,os/command/subprocess模塊中都有方法可以做到

對(duì)比其他語(yǔ)言(樓主用過(guò)的語(yǔ)言也不多):

PHP:exec(),system(), 整體感覺(jué)不好用, 阻塞很難受

java:模塊功能很強(qiáng)大,沒(méi)的說(shuō),功能與python的subprocess很相似

(1) os.system

僅僅在一個(gè)子終端運(yùn)行系統(tǒng)命令,而不能獲取命令執(zhí)行后的返回信息

(2) os.popen

該方法不但執(zhí)行命令還返回執(zhí)行后的信息對(duì)象

(3) 使用模塊commands模塊

常用的主要有兩個(gè)方法:getoutput和getstatusoutput

(4)使用模塊subprocess

說(shuō)到底還是subprocess最為強(qiáng)大,能實(shí)現(xiàn)很多功能:

比如最近遇到的項(xiàng)目需要再python中調(diào)用shell命令,還要獲取調(diào)用信息,監(jiān)控調(diào)用過(guò)程,超時(shí)終止等,這就要求調(diào)用過(guò)程不阻塞,還能交互,發(fā)現(xiàn)subprocess完全能滿足,可high了

使用方法(文件轉(zhuǎn)換為例):

time_start = time.time()
cmd = "pdf2htmlEX --no-drm 1 --embed-css 0 --embed-image 0 --embed-font 0 --split-pages 1 --fit-width 748 --css-filename html.css --dest-dir %s --embed-external-font 0 --auto-hint 1 %s" % (html_output_folder, src_file)
  cmd_list = cmd.split(" ")
  sub2 = subprocess.Popen(cmd_list)
  i = 0
  while 1:
    ret1 = subprocess.Popen.poll(sub2)
    if ret1 == 0:
      time_end = time.time()
      time_take = int(time_end - time_start + 0.5)
      with global_value_lock:
        success_ids[param[2]] = time_take
      print sub2.pid,'end'
      break
    elif ret1 is None:
      print sub2.pid, 'running'
      if i >= max_check_time:
        time_end = time.time()
        time_take = int(time_end - time_start + 0.5)
        with global_value_lock:
          timeout_ids[param[2]] = time_take
        sub2.kill()
        log_insert("%s%s%s" % (log_dir(output_folder), os.sep, "convert_log.txt"), src_file, "Timeout_Error", 'None')
        print "*****************Timeout_Error*****************"
        break
      time.sleep(check_time)
    else:
      time_end = time.time()
      time_take = int(time_end - time_start + 0.5)
      with global_value_lock:
        converterror_ids[param[2]] = time_take
      log_insert("%s%s%s" % (log_dir(output_folder), os.sep, "convert_log.txt"), src_file, "Process_Term_Error", str(ret1))
      print sub2.pid,'term', ret1, ret1
      break
    i += 1

?。∽⒁猓?/span>當(dāng)我們直接用cmd而非cmd_list時(shí),得到的pid并不是pdf2html起的進(jìn)程,而是其父進(jìn)程,切記切記

以下是Popen的一些基本用法

Popen它的構(gòu)造函數(shù)如下:

subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)

參數(shù)args可以是字符串或者序列類型(如:list,元組),用于指定進(jìn)程的可執(zhí)行文件及其參數(shù)。如果是序列類型,第一個(gè)元素通常是可執(zhí)行文件的路 徑。我們也可以顯式的使用executeable參數(shù)來(lái)指定可執(zhí)行文件的路徑。在windows操作系統(tǒng)上,Popen通過(guò)調(diào)用 CreateProcess()來(lái)創(chuàng)建子進(jìn)程,CreateProcess接收一個(gè)字符串參數(shù),如果args是序列類型,系統(tǒng)將會(huì)通過(guò) list2cmdline()函數(shù)將序列類型轉(zhuǎn)換為字符串。

參數(shù)bufsize:指定緩沖。我到現(xiàn)在還不清楚這個(gè)參數(shù)的具體含義,望各個(gè)大牛指點(diǎn)。

參數(shù)executable用于指定可執(zhí)行程序。一般情況下我們通過(guò)args參數(shù)來(lái)設(shè)置所要運(yùn)行的程序。如果將參數(shù)shell設(shè)為 True,executable將指定程序使用的shell。在windows平臺(tái)下,默認(rèn)的shell由COMSPEC環(huán)境變量來(lái)指定。

參數(shù)stdin, stdout, stderr分別表示程序的標(biāo)準(zhǔn)輸入、輸出、錯(cuò)誤句柄。他們可以是PIPE,文件描述符或文件對(duì)象,也可以設(shè)置為None,表示從父進(jìn)程繼承。

參數(shù)preexec_fn只在Unix平臺(tái)下有效,用于指定一個(gè)可執(zhí)行對(duì)象(callable object),它將在子進(jìn)程運(yùn)行之前被調(diào)用。

參數(shù)Close_sfs:在windows平臺(tái)下,如果close_fds被設(shè)置為T(mén)rue,則新創(chuàng)建的子進(jìn)程將不會(huì)繼承父進(jìn)程的輸入、輸出、錯(cuò)誤管 道。我們不能將close_fds設(shè)置為T(mén)rue同時(shí)重定向子進(jìn)程的標(biāo)準(zhǔn)輸入、輸出與錯(cuò)誤(stdin, stdout, stderr)。

如果參數(shù)shell設(shè)為true,程序?qū)⑼ㄟ^(guò)shell來(lái)執(zhí)行。

參數(shù)cwd用于設(shè)置子進(jìn)程的當(dāng)前目錄。

參數(shù)env是字典類型,用于指定子進(jìn)程的環(huán)境變量。如果env = None,子進(jìn)程的環(huán)境變量將從父進(jìn)程中繼承。

參數(shù)Universal_newlines:不同操作系統(tǒng)下,文本的換行符是不一樣的。如:windows下用'/r/n'表示換,而Linux下用 ‘/n'。如果將此參數(shù)設(shè)置為T(mén)rue,Python統(tǒng)一把這些換行符當(dāng)作'/n'來(lái)處理。

參數(shù)startupinfo與createionflags只在windows下用效,它們將被傳遞給底層的CreateProcess()函數(shù),用 于設(shè)置子進(jìn)程的一些屬性,如:主窗口的外觀,進(jìn)程的優(yōu)先級(jí)等等。

subprocess.PIPE

在創(chuàng)建Popen對(duì)象時(shí),subprocess.PIPE可以初始化stdin, stdout或stderr參數(shù)。表示與子進(jìn)程通信的標(biāo)準(zhǔn)流。

subprocess.STDOUT

創(chuàng)建Popen對(duì)象時(shí),用于初始化stderr參數(shù),表示將錯(cuò)誤通過(guò)標(biāo)準(zhǔn)輸出流輸出。

Popen的方法:

Popen.poll()

用于檢查子進(jìn)程是否已經(jīng)結(jié)束。設(shè)置并返回returncode屬性。

Popen.wait()

等待子進(jìn)程結(jié)束。設(shè)置并返回returncode屬性。

Popen.communicate(input=None)

與子進(jìn)程進(jìn)行交互。向stdin發(fā)送數(shù)據(jù),或從stdout和stderr中讀取數(shù)據(jù)??蛇x參數(shù)input指定發(fā)送到子進(jìn)程的參數(shù)。 Communicate()返回一個(gè)元組:(stdoutdata, stderrdata)。注意:如果希望通過(guò)進(jìn)程的stdin向其發(fā)送數(shù)據(jù),在創(chuàng)建Popen對(duì)象的時(shí)候,參數(shù)stdin必須被設(shè)置為PIPE。同樣,如 果希望從stdout和stderr獲取數(shù)據(jù),必須將stdout和stderr設(shè)置為PIPE。

Popen.send_signal(signal)

向子進(jìn)程發(fā)送信號(hào)。

Popen.terminate()

停止(stop)子進(jìn)程。在windows平臺(tái)下,該方法將調(diào)用Windows API TerminateProcess()來(lái)結(jié)束子進(jìn)程。

Popen.kill()

殺死子進(jìn)程。

Popen.stdin

如果在創(chuàng)建Popen對(duì)象是,參數(shù)stdin被設(shè)置為PIPE,Popen.stdin將返回一個(gè)文件對(duì)象用于策子進(jìn)程發(fā)送指令。否則返回None。

Popen.stdout

如果在創(chuàng)建Popen對(duì)象是,參數(shù)stdout被設(shè)置為PIPE,Popen.stdout將返回一個(gè)文件對(duì)象用于策子進(jìn)程發(fā)送指令。否則返回 None。

Popen.stderr

如果在創(chuàng)建Popen對(duì)象是,參數(shù)stdout被設(shè)置為PIPE,Popen.stdout將返回一個(gè)文件對(duì)象用于策子進(jìn)程發(fā)送指令。否則返回 None。

Popen.pid

獲取子進(jìn)程的進(jìn)程ID。

Popen.returncode

獲取進(jìn)程的返回值。如果進(jìn)程還沒(méi)有結(jié)束,返回None。

以上這篇python啟動(dòng)應(yīng)用程序和終止應(yīng)用程序的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法

    利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法

    這篇文章主要介紹了利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Python打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的方法

    Python打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的方法

    這篇文章主要介紹了Python打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的方法,實(shí)例分析了打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python圖形驗(yàn)證碼識(shí)別教程詳解

    Python圖形驗(yàn)證碼識(shí)別教程詳解

    這篇文章主要介紹了Python圖形驗(yàn)證碼識(shí)別,目前,許多網(wǎng)站采取各種各樣的措施來(lái)反爬蟲(chóng),其中一個(gè)措施便是使用驗(yàn)證碼。隨著技術(shù)的發(fā)展,驗(yàn)證碼的花樣越來(lái)越多。驗(yàn)證碼最初是幾個(gè)數(shù)字組合的簡(jiǎn)單的圖形驗(yàn)證碼,后來(lái)加入了英文字母和混淆曲線
    2023-02-02
  • Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲

    Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲

    這篇文章主要介紹了Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python可視化大屏庫(kù)big_screen示例詳解

    python可視化大屏庫(kù)big_screen示例詳解

    提到數(shù)據(jù)可視化,我們會(huì)想到 Plotly、Matplotlib、Pyecharts等可視化庫(kù),或者一些商用軟件Tableau、FineBI等等。如果你希望操作更簡(jiǎn)單、展現(xiàn)效果更強(qiáng)大,那么這款工具 big_screen 更適合
    2021-11-11
  • Python實(shí)現(xiàn)根據(jù)Excel表格某一列內(nèi)容與數(shù)據(jù)庫(kù)進(jìn)行匹配

    Python實(shí)現(xiàn)根據(jù)Excel表格某一列內(nèi)容與數(shù)據(jù)庫(kù)進(jìn)行匹配

    這篇文章主要為大家詳細(xì)介紹了Python如何使用pandas庫(kù)和Brightway2庫(kù)實(shí)現(xiàn)根據(jù)Excel表格某一列內(nèi)容與數(shù)據(jù)庫(kù)進(jìn)行匹配,需要的可以參考下
    2025-02-02
  • Python從入門(mén)到精通之Hash函數(shù)的使用詳解

    Python從入門(mén)到精通之Hash函數(shù)的使用詳解

    Python提供了強(qiáng)大而靈活的Hash函數(shù),用于在各種應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)校驗(yàn)、加密等功能,下面將從入門(mén)到精通介紹Python中Hash函數(shù)的使用,感興趣的可以了解一下
    2023-08-08
  • Python pip安裝如何切換國(guó)內(nèi)源

    Python pip安裝如何切換國(guó)內(nèi)源

    在Python開(kāi)發(fā)中,pip是一個(gè)非常重要的工具,它允許我們安裝和管理Python包,本文將介紹如何切換pip的國(guó)內(nèi)源,并推薦幾個(gè)常用的國(guó)內(nèi)源,感興趣的朋友一起看看吧
    2024-04-04
  • django 實(shí)現(xiàn)電子支付功能的示例代碼

    django 實(shí)現(xiàn)電子支付功能的示例代碼

    這篇文章主要介紹了django 實(shí)現(xiàn)電子支付功能的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 在Pycharm中使用GitHub的方法步驟

    在Pycharm中使用GitHub的方法步驟

    這篇文章主要介紹了在Pycharm中使用GitHub的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06

最新評(píng)論

郎溪县| 宜阳县| 新野县| 莱阳市| 会昌县| 乌苏市| 琼结县| 抚顺县| 淮滨县| 施甸县| 获嘉县| 汕头市| 勐海县| 体育| 海林市| 海原县| 南乐县| 夏津县| 全南县| 金坛市| 简阳市| 壤塘县| 江陵县| 花垣县| 海丰县| 淳化县| 徐闻县| 富顺县| 广东省| 淄博市| 扬中市| 宜兰县| 安多县| 泰和县| 呼伦贝尔市| 南通市| 新竹县| 项城市| 当雄县| 通河县| 北川|