python中执行命令的3种方法小结
目前我使用到的python中执行cmd的方式有三种:
1. 使用os.system("cmd")
特点是执行的时候程序会打出cmd在linux上执行的信息。
import os os.system("ls")
2. 使用Popen模块产生新的process
现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from subprocess import Popen, PIPE。但是Popen函数有一个缺陷,就是它是一个阻塞的方法。如果运行cmd时产生的内容非常多,函数非常容易阻塞住。解决办法是不使用wait()方法,但是也不能获得执行的返回值了。
Popen原型是:
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)
参数bufsize:指定缓冲。
参数executable用于指定可执行程序。一般情况下我们通过args参数来设置所要运行的程序。如果将参数shell设为 True,executable将指定程序使用的shell。在windows平台下,默认的shell由COMSPEC环境变量来指定。
参数stdin, stdout, stderr分别表示程序的标准输入、输出、错误句柄。他们可以是PIPE,文件描述符或文件对象,也可以设置为None,表示从父进程继承。
参数preexec_fn只在Unix平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用。
参数Close_sfs:在windows平台下,如果close_fds被设置为True,则新创建的子进程将不会继承父进程的输入、输出、错误管 道。我们不能将close_fds设置为True同时重定向子进程的标准输入、输出与错误(stdin, stdout, stderr)。
如果参数shell设为true,程序将通过shell来执行。
参数cwd用于设置子进程的当前目录。
参数env是字典类型,用于指定子进程的环境变量。如果env = None,子进程的环境变量将从父进程中继承。
参数Universal_newlines:不同操作系统下,文本的换行符是不一样的。如:windows下用’/r/n’表示换,而Linux下用 ‘/n’。如果将此参数设置为True,Python统一把这些换行符当作’/n’来处理。
参数startupinfo与createionflags只在windows下用效,它们将被传递给底层的CreateProcess()函数,用 于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等。
subprocess.PIPE
在创建Popen对象时,subprocess.PIPE可以初始化stdin, stdout或stderr参数,表示与子进程通信的标准流。
subprocess.STDOUT
创建Popen对象时,用于初始化stderr参数,表示将错误通过标准输出流输出。
Popen的方法:
Popen.poll()
用于检查子进程是否已经结束。设置并返回returncode属性。
Popen.wait()
等待子进程结束。设置并返回returncode属性。
Popen.communicate(input=None)
与子进程进行交互。向stdin发送数据,或从stdout和stderr中读取数据。可选参数input指定发送到子进程的参数。 Communicate()返回一个元组:(stdoutdata, stderrdata)。注意:如果希望通过进程的stdin向其发送数据,在创建Popen对象的时候,参数stdin必须被设置为PIPE。同样,如 果希望从stdout和stderr获取数据,必须将stdout和stderr设置为PIPE。
Popen.send_signal(signal)
向子进程发送信号。
Popen.terminate()
停止(stop)子进程。在windows平台下,该方法将调用Windows API TerminateProcess()来结束子进程。
Popen.kill()
杀死子进程。
Popen.stdin
如果在创建Popen对象是,参数stdin被设置为PIPE,Popen.stdin将返回一个文件对象用于策子进程发送指令。否则返回None。
Popen.stdout
如果在创建Popen对象是,参数stdout被设置为PIPE,Popen.stdout将返回一个文件对象用于策子进程发送指令。否则返回 None。
Popen.stderr
如果在创建Popen对象是,参数stdout被设置为PIPE,Popen.stdout将返回一个文件对象用于策子进程发送指令。否则返回 None。
Popen.pid
获取子进程的进程ID。
Popen.returncode
获取进程的返回值。如果进程还没有结束,返回None。
例如:
p = Popen("cp -rf a/* b/", shell=True, stdout=PIPE, stderr=PIPE) p.wait() if p.returncode != 0: print "Error." return -1
3. 使用commands.getstatusoutput方法
这个方法也不会打印出cmd在linux上执行的信息。这个方法唯一的优点是,它不是一个阻塞的方法。即没有Popen函数阻塞的问题。使用前需要import commands。
例如:
status, output = commands.getstatusoutput("ls")
还有只获得output和status的方法:
commands.getoutput("ls") commands.getstatus("ls")

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Google AI a commencé à fournir aux développeurs un accès à des fenêtres contextuelles étendues et à des fonctionnalités économiques, à commencer par le modèle de langage large (LLM) Gemini 1.5 Pro. Auparavant disponible via une liste d'attente, la fenêtre contextuelle complète de 2 millions de jetons

Comment télécharger Deepseek Xiaomi? Recherchez "Deepseek" dans le Xiaomi App Store. Identifiez vos besoins (fichiers de recherche, analyse des données) et recherchez les outils correspondants (tels que les gestionnaires de fichiers, les logiciels d'analyse des données) qui incluent les fonctions Deepseek.

La clé de l'utilisation efficace de Deepseek est de poser clairement des questions: exprimer les questions directement et spécifiquement. Fournir des détails spécifiques et des informations générales. Pour des demandes complexes, plusieurs angles et opinions de réfutations sont inclus. Concentrez-vous sur des aspects spécifiques, tels que les goulots d'étranglement des performances dans le code. Gardez une réflexion critique sur les réponses que vous obtenez et faites des jugements en fonction de votre expertise.

Utilisez simplement la fonction de recherche fournie avec Deepseek. Cependant, pour les recherches impopulaires, les dernières informations ou problèmes qui doivent être prises en compte, il est nécessaire d'ajuster les mots clés ou d'utiliser des descriptions plus spécifiques, de les combiner avec d'autres sources d'informations en temps réel et de comprendre que Deepseek n'est qu'un outil qui nécessite Stratégies de recherche actives, claires et raffinées.

Deepseek n'est pas un langage de programmation, mais un concept de recherche profonde. La mise en œuvre de Deepseek nécessite une sélection en fonction des langues existantes. Pour différents scénarios d'application, il est nécessaire de choisir la langue et les algorithmes appropriés et de combiner la technologie d'apprentissage automatique. La qualité du code, la maintenabilité et les tests sont cruciaux. Ce n'est qu'en choisissant le bon langage de programmation, les algorithmes et les bons outils en fonction de vos besoins et de l'écriture de code de haute qualité que Deepseek peut être mis en œuvre avec succès.

Question: Deepseek est-il disponible pour la comptabilité? Réponse: Non, il s'agit d'un outil d'exploration de données et d'analyse qui peut être utilisé pour analyser les données financières, mais elle n'a pas les fonctions de génération de comptabilité et de génération de rapports des logiciels comptables. L'utilisation de Deepseek pour analyser les données financières nécessite de l'écriture de code pour traiter les données avec une connaissance des structures de données, des algorithmes et des API profonds pour considérer les problèmes potentiels (par exemple, les connaissances en programmation, les courbes d'apprentissage, la qualité des données)

Python est un langage d'introduction à la programmation idéal pour les débutants grâce à sa facilité d'apprentissage et ses fonctionnalités puissantes. Ses bases incluent : Variables : utilisées pour stocker des données (nombres, chaînes, listes, etc.). Type de données : Définit le type de données dans la variable (entier, virgule flottante, etc.). Opérateurs : utilisés pour les opérations mathématiques et les comparaisons. Flux de contrôle : contrôlez le flux d'exécution du code (instructions conditionnelles, boucles).

Python permet aux débutants de résoudre des problèmes. Sa syntaxe conviviale, sa bibliothèque complète et ses fonctionnalités telles que les variables, les instructions conditionnelles et les boucles permettent un développement de code efficace. De la gestion des données au contrôle du flux du programme et à l'exécution de tâches répétitives, Python fournit
