Python-sys Module

Source: Internet
Author: User
Tags exit in

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
    1. >>>sys.getdefaultencoding ()

To set the default encoding, use:

Python code
    1. >>>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
    1. Import Sys
    2. Reload (SYS)
    3. sys.setdefaultencoding (' UTF8 ')

Another option is to create a new sitecustomize.py under the Python lib\site-packages folder, with the following:

Python code
    1. # Encoding=utf8
    2. Import Sys
    3. Reload (SYS)
    4. 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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.