Heim >Backend-Entwicklung >Python-Tutorial >Grundlegende Einführung in das Python-Systemmodul
1: sys ist ein integriertes Modul von Python
Verwenden Sie die Importanweisung, um das sys-Modul aufzurufen.
Verwandte Empfehlungen: „Python-Video“
Wenn import sys ausgeführt wird, wird Python im Verzeichnis im sys aufgeführt. Pfadvariable Suchen Sie die SYS-Moduldatei. Führen Sie dann die Anweisungen im Hauptblock dieses Moduls aus, um es zu initialisieren. Anschließend können Sie das Modul verwenden.
2: Allgemeine Funktionen des sys-Moduls
Sie können die dir()-Methode verwenden, um die im Modul verfügbaren Methoden anzuzeigen. Die Ergebnisse sind wie folgt: I Ich habe nicht viele davon verwendet, also stelle ich nur ein paar Methoden vor, die ich verwendet habe
$ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> dir(sys) ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', '_multiarch', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
(1) sys.argv implementiert die Übergabe von Parametern von außerhalb des Programms an das Programm
Die Variable sys.argv ist eine Zeichenfolge mit der Befehlszeilenparameterliste. Verwenden Sie die Befehlszeile, um Parameter an das Programm zu übergeben. Dabei ist der Name des Skripts immer der erste Parameter in der Liste sys.argv.
(2) sys.path enthält eine Liste von Verzeichnisnamen für Eingabemodule.
Erhalten Sie den Zeichenfolgensatz des angegebenen Modulsuchpfads. Sie können das geschriebene Modul unter einem bestimmten Pfad ablegen und es beim Importieren im Programm korrekt finden. Beim Importieren von module_name wird module.name basierend auf dem Pfad von sys.path durchsucht. Sie können den Modulpfad auch anpassen.
sys.path.append("custom module path")
(3) sys.exit([arg]) Exit in der Mitte des Programms, arg=0 bedeutet normales Exit
Im Allgemeinen wird der Interpreter automatisch beendet, wenn die Ausführung das Ende des Hauptprogramms erreicht. Wenn Sie das Programm jedoch mittendrin beenden müssen, können Sie die Funktion sys.exit mit einem optionalen ganzzahligen Parameter aufrufen, der an den Aufruf zurückgegeben wird Programm, was darauf hinweist, dass Sie den Aufruf von sys.exit im Hauptprogramm erfassen können. (0 bedeutet normaler Exit, andere sind Ausnahmen) Natürlich können Sie auch String-Parameter verwenden, um erfolglose Fehlermeldungen anzuzeigen.
(4) sys.modules
sys.modules ist ein globales Wörterbuch, das nach dem Start von Python in den Speicher geladen wird. Immer wenn ein Programmierer ein neues Modul importiert, zeichnet sys.modules das Modul automatisch auf. Wenn das Modul zum zweiten Mal importiert wird, sucht Python es direkt im Wörterbuch und beschleunigt so das Programm. Es verfügt über alle Methoden, die das Wörterbuch hat
(5) sys.getdefaultencoding() / sys.setdefaultencoding() / sys.getfilesystemencoding()
sys.getdefaultencoding()
Rufen Sie die aktuelle Kodierung des Systems ab, die im Allgemeinen standardmäßig ASCII ist.
sys.setdefaultencoding()
Legen Sie die Systemstandardcodierung fest. Diese Methode wird beim Ausführen von dir (sys) nicht angezeigt. Wenn die Ausführung im Interpreter fehlschlägt, können Sie reload (sys) ausführen ) zuerst, nach der Ausführung von setdefaultencoding('utf8') wird die Systemstandardkodierung auf utf8 gesetzt. (Siehe Festlegen der Standardkodierung des Systems)
sys.getfilesystemencoding()
Erhält die vom Dateisystem verwendete Kodierung unter Windows und „utf-8“ unter Mac
(6) sys.stdin, sys.stdout, sys.stderr
stdin-, stdout- und stderr-Variablen enthalten Stream-Objekte, die Standard-E/A-Streams entsprechen Wenn die Ausgabe und der Druck nicht Ihren Anforderungen entsprechen, können Sie sie auch ersetzen und dann die Ausgabe und Eingabe auf andere Geräte (Gerät) umleiten oder sie auf nicht standardmäßige Weise verarbeiten.
(7) sys.platform
Holen Sie sich die aktuelle Systemplattform, zum Beispiel: Win32, Linux usw.
3: Beispiel
(1) sys.argv sys.path
$ cat sys-test.py #!/usr/bin/python import sys print 'The command line arguments are:' for i in sys.argv: print i print '\n\nThe PYTHONPATH is', sys.path, '\n'
Laufergebnis:
$ python sys-test.py my name is ubuntu The command line arguments are: sys-test.py my name is ubuntu The PYTHONPATH is ['/work/python-practice', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
(2) sys.exit
import sys def exitfunc(value): print (value) sys.exit(0) print("hello") try: sys.exit(90) except SystemExit as value: exitfunc(value) print("come?")
Ergebnis ausführen:
hello 90
Das Programm gibt zuerst „Hallo“ aus, führt dann „exit(90)“ aus, löst eine Ausnahme aus und übergibt 90 an die übergebenen Werte Funktion und gibt 90 aus. Das Programm wird beendet. Das folgende „come?“ wird nicht gedruckt, da es zu diesem Zeitpunkt bereits beendet wurde. Wenn Sie sys.exit(0) in der Funktion „exitfunc“ entfernen, wird das Programm so lange ausgeführt, bis es „come?“ ausgibt.
(3) sys.modules
sys.modules.keys() gibt eine Liste aller importierten Module zurück
keys ist der Modulname
Werte ist das Modul
Module Return Path
import sys print(sys.modules.keys()) print("**************************************************************************") print(sys.modules.values()) print("**************************************************************************") print(sys.modules["os"])
Run result:
['copy_reg', 'sre_compile', '_sre', 'encodings', 'site', '__builtin__', 'sysconfig', '__main__', 'encodings.encodings', 'abc', 'posixpath', '_weakrefset', 'errno', 'encodings.codecs', 'sre_constants', 're', '_abcoll', 'types', '_codecs', 'encodings.__builtin__', '_warnings', 'genericpath', 'stat', 'zipimport', '_sysconfigdata', 'warnings', 'UserDict', 'encodings.ascii', 'sys', 'codecs', '_sysconfigdata_nd', 'os.path', 'sitecustomize', 'signal', 'traceback', 'linecache', 'posix', 'encodings.aliases', 'exceptions', 'sre_parse', 'os', '_weakref'] ******************************************************************************* [<module 'copy_reg' from '/usr/lib/python2.7/copy_reg.pyc'>, <module 'sre_compile' from '/usr/lib/python2.7/sre_compile.pyc'>, <module '_sre' (built-in)>, <module 'encodings' from '/usr/lib/python2.7/encodings/__init__.pyc'>, <module 'site' from '/usr/lib/python2.7/site.pyc'>, <module '__builtin__' (built-in)>, <module 'sysconfig' from '/usr/lib/python2.7/sysconfig.pyc'>, <module '__main__' from 'sys-test1.py'>, None, <module 'abc' from '/usr/lib/python2.7/abc.pyc'>, <module 'posixpath' from '/usr/lib/python2.7/posixpath.pyc'>, <module '_weakrefset' from '/usr/lib/python2.7/_weakrefset.pyc'>, <module 'errno' (built-in)>, None, <module 'sre_constants' from '/usr/lib/python2.7/sre_constants.pyc'>, <module 're' from '/usr/lib/python2.7/re.pyc'>, <module '_abcoll' from '/usr/lib/python2.7/_abcoll.pyc'>, <module 'types' from '/usr/lib/python2.7/types.pyc'>, <module '_codecs' (built-in)>, None, <module '_warnings' (built-in)>, <module 'genericpath' from '/usr/lib/python2.7/genericpath.pyc'>, <module 'stat' from '/usr/lib/python2.7/stat.pyc'>, <module 'zipimport' (built-in)>, <module '_sysconfigdata' from '/usr/lib/python2.7/_sysconfigdata.pyc'>, <module 'warnings' from '/usr/lib/python2.7/warnings.pyc'>, <module 'UserDict' from '/usr/lib/python2.7/UserDict.pyc'>, <module 'encodings.ascii' from '/usr/lib/python2.7/encodings/ascii.pyc'>, <module 'sys' (built-in)>, <module 'codecs' from '/usr/lib/python2.7/codecs.pyc'>, <module '_sysconfigdata_nd' from '/usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.pyc'>, <module 'posixpath' from '/usr/lib/python2.7/posixpath.pyc'>, <module 'sitecustomize' from '/usr/lib/python2.7/sitecustomize.pyc'>, <module 'signal' (built-in)>, <module 'traceback' from '/usr/lib/python2.7/traceback.pyc'>, <module 'linecache' from '/usr/lib/python2.7/linecache.pyc'>, <module 'posix' (built-in)>, <module 'encodings.aliases' from '/usr/lib/python2.7/encodings/aliases.pyc'>, <module 'exceptions' (built-in)>, <module 'sre_parse' from '/usr/lib/python2.7/sre_parse.pyc'>, <module 'os' from '/usr/lib/python2.7/os.pyc'>, <module '_weakref' (built-in)>] ******************************************************************************* <module 'os' from '/usr/lib/python2.7/os.pyc'>
(4) sys.stdin/sys.stdout/sys.stderr
stdin, stdout, stderr sind in Alle Dateiattributobjekte in Python werden automatisch mit der Standardeingabe, -ausgabe und -fehlern in der Shell-Umgebung in Verbindung gebracht. Die E/A-Umleitung des Python-Programms in der Shell wird bereitgestellt von der Shell und hat nichts mit Python selbst zu tun. Das Python-Programm leitet intern Lese- und Schreibvorgänge an ein internes Objekt weiter
import sys #print('Hi, %s!' %input('Please enter your name: ')) python3.*版本用input print('Hi, %s!' %raw_input('Please enter your name: ')) #python2.*版本用raw_input 运行结果: Please enter your name: er Hi, er! 等同于: #!/usr/bin/python import sys print('Please enter your name:') name=sys.stdin.readline()[:-1] print('Hi, %s!' %name) 标准输出 print('Hello World!\n') 等同于: #!/usr/bin/python import sys sys.stdout.write('output resule is good!\n') 其他实验 #!/usr/bin/python import sys for i in (sys.stdin, sys.stdout, sys.stderr): print(i)Ausführungsergebnis:
python sys-test1.py <open file '<stdin>', mode 'r' at 0x7fa4e630f0c0> <open file '<stdout>', mode 'w' at 0x7fa4e630f150> <open file '<stderr>', mode 'w' at 0x7fa4e630f1e0>
Das obige ist der detaillierte Inhalt vonGrundlegende Einführung in das Python-Systemmodul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!