


Wie kann ich Timeouts implementieren, wenn ich das „subprocess'-Modul von Python verwende?
Pythons Unterprozessmodul und Timeouts
Das Unterprozessmodul bietet eine bequeme Möglichkeit, externe Befehle auszuführen, ihre Ausgaben zu erfassen und ihre Lebenszyklen zu verwalten. Standardmäßig unterstützt die Methode „communic()“ jedoch keine Zeitüberschreitungen. Dies stellt eine Herausforderung dar, wenn Befehle mit langer Laufzeit ausgeführt werden, die möglicherweise den aufrufenden Prozess blockieren könnten.
Timeouts mit check_output implementieren
Python 3.3 und höher stellt check_output() als bereit effizientere Alternative zu Popen() und communications(). Diese Funktion wertet einen Befehl aus, führt seine stdout- und stderr-Ausgaben in einer Bytezeichenfolge zusammen und löst einen CalledProcessError aus, wenn der Befehl mit einem Status ungleich Null beendet wird. Entscheidend ist, dass es auch Timeouts unterstützt, sodass Sie eine maximale Ausführungszeit für den Befehl angeben können.
from subprocess import STDOUT, check_output seconds = 10 # Timeout in seconds output = check_output(cmd, stderr=STDOUT, timeout=seconds)
In diesem Beispiel führt die Funktion check_output() den in cmd angegebenen Befehl aus und wartet, bis er abgeschlossen ist innerhalb von 10 Sekunden. Wenn der Befehl länger als 10 Sekunden dauert, wird ein TimeoutExpired-Fehler ausgelöst.
Verwendung von subprocess32 für Timeouts in Python 2.x
Für Python 2.x gilt: subprocess32 backport bietet die gleiche Timeout-Funktionalität wie check_output() in Python 3.3. Um subprocess32 zu installieren, verwenden Sie pip:
pip install subprocess32
Nach der Installation können Sie die call()-Funktion von subprocess32 verwenden, um Befehle mit Zeitüberschreitungen auszuführen:
import subprocess32 seconds = 10 # Timeout in seconds subprocess32.call(cmd, timeout=seconds)
Zusätzliche Überlegungen
- Entfernen Sie „shell=True“ nach Möglichkeit aus Ihren Unterprozessaufrufen. Dadurch werden Sicherheit und Leistung verbessert.
- Das Timeout-Verhalten kann je nach Plattform und Prozesskomplexität variieren. Weitere Einzelheiten finden Sie in der Dokumentation zum Subprozess-Timeout-Fehler.
Das obige ist der detaillierte Inhalt vonWie kann ich Timeouts implementieren, wenn ich das „subprocess'-Modul von Python verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PythonusesahybridmodelofCompilation und Interpretation: 1) thepythonInterPreterCompilessourceCodeIntoplatform-unintenpendentBytecode.2) Thepythonvirtualmachine (PVM) ThenexexexexecthisByTeCode, BalancingeAnsewusewithperformance.

Pythonisbothinterpreted und kompiliert.1) ItscompiledToByteCodeForPortabilityAcrossplatform.2) thytecodeTheninterpreted, und das ErlaubnisfordyNamictyPingandRapidDevelopment zulässt, obwohl es sich

ForloopsaridealWenyouKnowtHenumberofofiterationssinadvance, während whileloopsarebetterForsituationswhereyouneedtoloopuntilaconditionismet.forloopsaremoreffictionAndable, geeigneter Verfaserungsverlust, whereaswiloopsofofermorcontrolanduseusefulfulf

Forloopsareusedwhenthenumberofiterationsisknowninadvance,whilewhileloopsareusedwhentheiterationsdependonacondition.1)Forloopsareidealforiteratingoversequenceslikelistsorarrays.2)Whileloopsaresuitableforscenarioswheretheloopcontinuesuntilaspecificcond

Pythonisnotpurelyinterpretiert; itusesahybridapproachofByteCodecompilation undruntimeinterpretation.1) PythoncompilessourcecodeIntoBytecode, die ISthenexecutBythepythonvirtualmachine (Pvm)

ToconcatenatelistsinpythonWithThesameElements, Verwendung: 1) Die Operatortokeepduplikate, 2) asettoremoveduplicate, or3) listenConpRectionforControloverDuplikate, EvermethodhasDifferentPerformanceInDormplocate.

PythonisaninterpretedLuage, OfferingaseofuseandflexibilitätsbutfacingPerformancelimitationsincriticalApplications.1) InterpretedLanguages LikePythonexecutine-by-Line, ermöglicht, dassmediateFeedbackandrapidPrototyping.2) CompiledLanguagesslikec/C.5.

Useforloopswhenthenumberofofiterationssisknowninadvance und wileloopswhenCiterationsDependonacondition.1) Forloopsardealforsequencelistorranges.2) Während


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor
