Programmation Python Principes de base: python démarrer l'application et mettre fin à l'application de la méthode

Aujourd'hui petite pour tout le monde à partager un python démarrer l'application et mettre fin à l'application de la méthode, une bonne valeur de référence, nous voulons aider. Venez voir, de suivre les petites séries ensemble

  1. but

Allez travailler tous les jours, les exigences de travail, les besoins informatiques pour démarrer un logiciel tous les jours, le temps de travail, vous devez désactiver certains logiciels. Une apparence ouverte et est proche d'un très fastidieux, et donc, le script crée.

  1. environnement

environnement système:

  • bit win7-32

  • python 2.7.9

Vous devez également installer pywin32.

pip installer pywin32

  1. Scripting

Démarrez le script d'application

#coding=utf-8
  
import win32api
#日报软件启动
win32api.ShellExecute(0, 'open', r'C:\Program Files\Pudding\Pudding.exe', '','',1)
  
#OA启动
win32api.ShellExecute(0, 'open', r'C:\Program Files\Tongda\ispirit\ispiritPro.exe', '','',1)
  
#QQ启动
win32api.ShellExecute(0, 'open', r'D:\QQ\Bin\QQ.exe', '','',1)
  
#......
#当然你还可以添加很多你需要启动的软件

Termine le script d'application

#coding=utf-8
  
import os
  
#终止QQ软件
os.system("taskkill /F /IM QQ.exe")
  
#终止日报订餐软件
os.system("taskkill /F /IM Pudding.exe")
  
#终止OA软件
os.system("taskkill /F /IM ispiritPro.exe")
  
#......
#当然你还可以添加很多你需要终止的软件
  1. La production exe

Enfin, ces deux scripts transformés en fichiers exe, sur la table, chaque fois qu'il est facile à utiliser.

les commandes du système d'appel de python, exécuter la ligne de commande

commandes de système d'appel python moyen est d'avoir plus, OS / commande / module sous-processus sont des façons de faire

Par rapport à d'autres langues (langue utilisée Bailleur pas beaucoup):

PHP: exec (), system (), le sentiment général est pas bon usage, l'obstruction sujet difficile

java: fonction du module est très puissant, pour ne pas dire que la fonction est très similaire à la sous-processus du python

(1) os.system

Seule une des commandes du système d'exploitation sous-terminal, mais ne peut pas obtenir la commande de retour d'information

(2) os.popen

Cette méthode effectue non seulement l'objet d'information renvoie également la commande d'exécution

(3) Module de commandes du module

Il existe deux méthodes couramment utilisées: GetOutput et getstatusoutput

(4) en utilisant le module subprocess

Dans l'analyse finale subprocess le plus puissant, peut obtenir beaucoup de fonctionnalités:

Par exemple, la nécessité du projet a récemment rencontré de faire appel à des commandes shell python, mais aussi obtenir de l'information d'appel, le processus de suivi des appels, les délais d'attente mis fin, ce qui nécessite le processus d'appel ne soit pas bloqué, mais aussi interactif, subprocess trouvé peut rencontrer, être un haut

Utilisation (conversion de fichiers par exemple):

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

! ! Remarque: lorsque nous utilisons directement cmd et non cmd_list, obtenir le pid n'est pas pdf2html du processus, mais son parent, Remember remember

Voici quelques utilisation de base de Popen

Popen son constructeur comme suit:

subprocess.Popen (args, bufsize = 0, = None exécutable, 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)

Args paramètre peut être un type de chaîne ou d'une séquence (par exemple: liste, tuple), et le fichier exécutable pour les paramètres de processus spécifiques. Si le type est une séquence, habituellement le premier élément du chemin du fichier exécutable. Nous pouvons également utiliser explicitement paramètre executable pour spécifier le chemin du fichier exécutable. Sur les fenêtres du système d'exploitation, Popen créé en appelant CreateProcess () un processus enfant, CreateProcess prend un paramètre de chaîne, si args est un type de séquence, le système sera en fonction list2cmdline () pour convertir une séquence de type chaîne.

Paramètres bufsize: spécifier la mémoire tampon. Je ne sais toujours pas le sens spécifique des paramètres, espère que tous les grands troupeaux de pointage.

Paramètre spécifie l'exécutable pour les programmes exécutables. Nous avons mis le programme à exécuter par le paramètre args dans des circonstances normales. Si le paramètre shell est définie sur True, le programme exécutable précisera le shell à utiliser. Dans la plate-forme Windows, le shell par défaut est spécifiée par la variable d'environnement COMSPEC.

Paramètres STDIN, stdout, stderr représentent entrée standard, la sortie, le programme de gestionnaire d'erreurs. Ils peuvent être un tuyau, le descripteur de fichier ou d'un objet de fichier peut également être défini sur Aucun, exprimé hérité du processus parent.

paramètre Preexec_fn est valide uniquement dans la plate-forme Unix, est utilisé pour spécifier un objets exécutables (objet appelable), il sera appelé avant l'exécution du processus enfant.

Paramètres Close_sfs: plate-forme Windows, si le processus de l'enfant de close_fds est définie sur True, nouvellement créé ne sera pas hériter de l'entrée du parent, la sortie, d'un pipeline d'erreur. Nous ne pouvons pas close_fds mettre à la redirection de l'entrée standard est vrai que le processus de l'enfant, la sortie et l'erreur (stdin, stdout, stderr).

Si le paramètre shell défini sur true, le programme sera exécuté à travers la coquille.

paramètre CWD est utilisé pour définir le répertoire actuel du processus de l'enfant.

type de paramètre est un dictionnaire Env pour la variable d'environnement spécifie le processus de l'enfant. Si env = Aucun, variables d'environnement processus enfant a hérité du processus parent.

Paramètres Universal_newlines: différents systèmes d'exploitation, les sauts de ligne, le texte n'est pas le même. Tels que: changer les fenêtres représentées par '/ r / n', alors que Linux en utilisant '/ n'. Si vous réglez ce paramètre sur True, Python unifient ces sauts de ligne comme « / n » à traiter.

STARTUPINFO createionflags paramètres et uniquement avec Windows en vigueur, ils seront transmis à la fonction CreateProcess sous-jacente (), certains des attributs définis pour le processus de l'enfant, par exemple: priorité de l'apparition de la fenêtre principale, processus et autres.

subprocess.PIPE

Lorsque vous créez un objet Popen, subprocess.PIPE peut initialiser les paramètres stdin, stdout ou stderr. Il représente le flux de communication standard de sous-processus.

subprocess.STDOUT

Popen Lors de la création d'un objet, pour le paramètre d'initialisation de stderr indique l'erreur par le flux de sortie standard.

Procédé Popen:

Popen.poll ()

Pour vérifier si le processus de l'enfant a pris fin. Paramètres et retour propriété returnCode.

Popen.wait ()

Attendez la fin du processus de l'enfant. Paramètres et retour propriété returnCode.

Popen.communicate (entrée = None)

Interagir avec l'enfant. La transmission des données à l'stdin, stdout et lire les données, ou à stderr. paramètre optionnel spécifie le paramètre d'entrée envoyé au processus de l'enfant. Communiquer () retourne un tuple: (stdoutdata, stderrdata). Remarque: Si vous souhaitez envoyer des données, lors de la création d'objets Popen, les paramètres doivent être réglés sur stdin PIPE stdin à travers le processus. De même, si vous voulez obtenir des données de stdout et stderr, stdout et stderr doit être réglé sur PIPE.

Popen.send_signal (signal)

Envoyer un signal au processus de l'enfant.

Popen.terminate ()

Stop (arrêt), le processus enfant. Dans la plate-forme Windows, qui appelle la API Windows TerminateProcess () pour mettre fin au processus de l'enfant.

Popen.kill ()

Tuer le processus enfant.

Popen.stdin

Si vous créez des objets qui Popen paramètre stdin est réglé sur PIPE, Popen.stdin retourne un objet de fichier pour faire des enfants processus pour envoyer des commandes. Sinon, il retourne None.

Popen.stdout

Si vous créez des objets Popen ce paramètre est réglé sur PIPE stdout, Popen.stdout retourne un objet de fichier pour faire des enfants processus pour envoyer des commandes. Sinon, il retourne None.

Popen.stderr

Si vous créez des objets Popen ce paramètre est réglé sur PIPE stdout, Popen.stdout retourne un objet de fichier pour faire des enfants processus pour envoyer des commandes. Sinon, il retourne None.

Popen.pid

Obtenez l'ID de processus enfant.

Popen.returncode

Procédé d'obtention de la valeur de retour. Si le processus n'est pas terminée, le retour Aucun.
Enfin, nous recommandons une très large collecte de ressources d'apprentissage python, [cliquer pour entrer] , voici ma collection avant l' expérience d' apprentissage, des notes d'étude, il y a une chance d'expérience en affaires, et se calma à zéro sur la base de l' information au combat de projet , nous pouvons au fond, laisser un message, ne savent pas mettre en avant, nous étudierons ensemble les progrès

Publié 15 articles originaux · a gagné les éloges 2 · vues 10000 +

Je suppose que tu aimes

Origine blog.csdn.net/haoxun11/article/details/104908056
conseillé
Classement