Suche…


Einführung

Das sys- Modul bietet Zugriff auf Funktionen und Werte, die die Laufzeitumgebung des Programms betreffen, wie z. B. die Befehlszeilenparameter in sys.argv oder die Funktion sys.exit() , um den aktuellen Prozess an einem beliebigen Punkt im Programmablauf zu beenden.

Obwohl es sauber in ein Modul unterteilt ist, ist es tatsächlich eingebaut und steht unter normalen Umständen immer zur Verfügung.

Syntax

  • Importieren Sie das sys-Modul und machen Sie es im aktuellen Namespace verfügbar:

    import sys
    
  • Importieren Sie eine bestimmte Funktion aus dem sys-Modul direkt in den aktuellen Namespace:

    from sys import exit
    

Bemerkungen

Einzelheiten zu allen Mitgliedern des sys- Moduls finden Sie in der offiziellen Dokumentation .

Kommandozeilenargumente

if len(sys.argv) != 4:         # The script name needs to be accounted for as well.
    raise RuntimeError("expected 3 command line arguments")

f = open(sys.argv[1], 'rb')    # Use first command line argument.
start_line = int(sys.argv[2])  # All arguments come as strings, so need to be
end_line = int(sys.argv[3])    # converted explicitly if other types are required.

Beachten Sie, dass Sie in größeren und ausgefeilteren Programmen Module verwenden, z. B. klicken Sie , um Befehlszeilenargumente zu behandeln, anstatt es selbst zu tun.

Skriptname

# The name of the executed script is at the beginning of the argv list.
print('usage:', sys.argv[0], '<filename> <start> <end>')

# You can use it to generate the path prefix of the executed program
# (as opposed to the current module) to access files relative to that,
# which would be good for assets of a game, for instance.
program_file = sys.argv[0]

import pathlib
program_path = pathlib.Path(program_file).resolve().parent

Standardfehlerstrom

# Error messages should not go to standard output, if possible.
print('ERROR: We have no cheese at all.', file=sys.stderr)

try:
    f = open('nonexistent-file.xyz', 'rb')
except OSError as e:
    print(e, file=sys.stderr)

Den Prozess vorzeitig beenden und einen Beendigungscode zurückgeben

def main():
    if len(sys.argv) != 4 or '--help' in sys.argv[1:]:
        print('usage: my_program <arg1> <arg2> <arg3>', file=sys.stderr)
        
        sys.exit(1)    # use an exit code to signal the program was unsuccessful

    process_data()


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow