List of common functions of the Python-sys module SYS module
sys.argv
: Implements passing parameters to the program from outside the program.
sys.exit([arg])
: Exit in the middle of the program, arg=0 for normal exit.
sys.getdefaultencoding()
: Gets the current encoding of the system, which is generally ASCII by default.
sys.setdefaultencoding()
: Set system default encoding, do not see this method when executing dir (SYS), do not pass in interpreter, can execute reload (SYS), execute setdefaultencoding (' UTF8 ') at this time, set system default encoding to UTF8. (See Set system default encoding)
sys.getfilesystemencoding()
: Get file system using encoding method, return ' MBCS ' under Windows, Mac return ' Utf-8 '.
sys.path
: Gets a collection of strings for the specified module's search path, which can be placed in a given path, and can be found correctly when import is in the program.
sys.platform
: Gets the current system platform.
sys.stdin,sys.stdout,sys.stderr
: stdin, stdout, and stderr variables contain stream objects that correspond to standard I/O streams. If you need more control over the output, and print does not meet your requirements, they are what you need. You can also replace them, so you can redirect output and input to other devices, or handle them in a non-standard way
sys.argv
Function: Pass parameters externally to the program
Example:sys.py
#!/usr/bin/env pythonimport sysprint sys.argv[0]print sys.argv[1]
Run:
python sys.py argv1sys.pyargv1
Try it yourself, understand the parameters corresponding to the relationship
Sys.exit (N)
Function: Executes to the end of the main program, the interpreter automatically exits, but if you need to exit the program halfway, you can call the Sys.exit function, with an optional integer parameter returned to the program that called it, indicating that you can capture the call to Sys.exit in the main program. (0 is normal exit, others are abnormal)
Example:exit.py
#!/usr/bin/env pythonimport sysdef exitfunc(value): print value sys.exit(0)print "hello"try: sys.exit(1)except SystemExit,value: exitfunc(value)print "come?"
Run:
# python exit.pyhello1
Set system code
When Python is installed, the default encoding is ASCII, and when non-ASCII encoding occurs in the program, Python processing often reports such an error unicodedecodeerror: ' ASCII ' codec can ' t decode byte 0x?? In position 1:ordinal No in range, Python does not handle non-ASCII encoding, it is necessary to set its own default encoding python, generally set to UTF8 encoding format.
Query system default encoding you can enter the following command in the interpreter:
Python code
- >>>sys.getdefaultencoding ()
To set the default encoding, use:
Python code
- >>>sys.setdefaultencoding (' UTF8 ')
May be reported attributeerror: ' Module ' object has no attribute ' setdefaultencoding ' error, execution reload (SYS), in the execution of the above command can be passed smoothly.
At this point, the execution of sys.getdefaultencoding () will find that the encoding has been set to UTF8, but the code modified in the interpreter can only be guaranteed to be valid, after restarting the interpreter, it will be found that the encoding is reset to the default ASCII, Then there is no way to modify the program or the system's default code at once.
There are 2 ways to set the default encoding for Python:
A solution is to add the following code to the program:
Python code
- Import Sys
- Reload (SYS)
- sys.setdefaultencoding (' UTF8 ')
Another option is to create a new sitecustomize.py under the Python lib\site-packages folder, with the following:
Python code
- # Encoding=utf8
- Import Sys
- Reload (SYS)
- sys.setdefaultencoding (' UTF8 ')
Now restart the Python interpreter, execute sys.getdefaultencoding (), found that the encoding has been set to UTF8, after multiple restarts, the effect is the same, because the system when the Python boot, the file itself, set the system's default encoding, Without the need to manually add a solution to the code each time, is a solution.
Sys.path
Function: Gets a collection of strings for the specified module search path, which can be placed in a given path, and can be found correctly when import is in the program.
Example:
>>> import sys>>> sys.path[‘‘, ‘/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/python2.7/dist-packages/ubuntu-sso-client‘]
sys.path.append("自定义模块路径")
Sys.modules
Function: sys.modules
is a global dictionary that is loaded in memory when Python is started. Whenever a programmer imports a new module, sys.modules
the module is automatically recorded. When the module is re-imported the second time, Python will look directly into the dictionary, speeding up the program's speed. It has all the methods that the dictionary has.
Example:modules.py
#!/usr/bin/env pythonimport sysprint sys.modules.keys()print sys.modules.values()print sys.modules["os"]
Run:
python modules.py[‘copy_reg‘, ‘sre_compile‘, ‘_sre‘, ‘encodings‘, ‘site‘, ‘__builtin__‘,......
Sys.stdin\stdout\stderr
Features: stdin, stdout, and stderr variables contain stream objects that correspond to standard I/O streams. If you need more control over the output, and print does not meet your requirements, they are what you need. You can also replace them, so you can redirect output and input to other devices, or handle them in a non-standard way
Python-sys Module