python之SYS

sys模块

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]

 

sys.argv: 实现从程序外部向程序传递参数。

sys.exit([arg]): 程序中间的退出,arg=0为正常退出。

sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。

sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )

sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.

sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

sys.platform: 获取当前系统平台。

sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

  

sys.argv

功能:在外部向程序内部传递参数
示例:sys.py

import sys
print( sys.argv[0])
print(sys.argv[1])

运行:

# python sys.py argv1
sys.py
argv1

自己动手尝试一下,领悟参数对应关系

sys.exit(n)

功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)

示例:exit.py

#!/usr/bin/env python

import sys

def exitfunc(value):
    print value
    sys.exit(0)

print ("hello")

try:
    sys.exit(1)
except SystemExit,value:
    exitfunc(value)

print ("come?")

运行:

# python exit.py
hello
1

sys.path

功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

示例:

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

F:python从入门到放弃7.12>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'D:\Program Files (x86)\python36\python36.zip', 'D:\Program Files (x86)
\python36\DLLs', 'D:\Program Files (x86)\python36\lib', 'D:\Program Files
(x86)\python36', 'D:\Program Files (x86)\python36\lib\site-packages']
>>>

sys.path.append("自定义模块路径")

sys.modules

功能:sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。

示例:modules.py

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import sys
4 print(sys.modules.keys())

result

"D:Program Files (x86)python36python.exe" F:/python从入门到放弃/7.12/sys_module.py
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'sitecustomize'])

Process finished with exit code 0

for example

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import sys
4 import time
5 print(sys.modules.keys())

results:

"D:Program Files (x86)python36python.exe" F:/python从入门到放弃/7.12/sys_module.py
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'sitecustomize', 'time'])

Process finished with exit code 0

 

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import sys
4 import time
5 print(sys.modules.keys())
6 print(sys.modules.values())
7 print(sys.modules['time'])

result:

"D:Program Files (x86)python36python.exe" F:/python从入门到放弃/7.12/sys_module.py
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'sitecustomize', 'time'])
dict_values([<module 'builtins' (built-in)>, <module 'sys' (built-in)>, <module '_frozen_importlib' (frozen)>, <module '_imp' (built-in)>, <module '_warnings' (built-in)>, <module '_thread' (built-in)>, <module '_weakref' (built-in)>, <module '_frozen_importlib_external' (frozen)>, <module 'io' (built-in)>, <module 'marshal' (built-in)>, <module 'nt' (built-in)>, <module 'winreg' (built-in)>, <module 'zipimport' (built-in)>, <module 'encodings' from 'D:\Program Files (x86)\python36\lib\encodings\__init__.py'>, <module 'codecs' from 'D:\Program Files (x86)\python36\lib\codecs.py'>, <module '_codecs' (built-in)>, <module 'encodings.aliases' from 'D:\Program Files (x86)\python36\lib\encodings\aliases.py'>, <module 'encodings.utf_8' from 'D:\Program Files (x86)\python36\lib\encodings\utf_8.py'>, <module '_signal' (built-in)>, <module '__main__' from 'F:/python从入门到放弃/7.12/sys_module.py'>, <module 'encodings.latin_1' from 'D:\Program Files (x86)\python36\lib\encodings\latin_1.py'>, <module 'io' from 'D:\Program Files (x86)\python36\lib\io.py'>, <module 'abc' from 'D:\Program Files (x86)\python36\lib\abc.py'>, <module '_weakrefset' from 'D:\Program Files (x86)\python36\lib\_weakrefset.py'>, <module 'site' from 'D:\Program Files (x86)\python36\lib\site.py'>, <module 'os' from 'D:\Program Files (x86)\python36\lib\os.py'>, <module 'errno' (built-in)>, <module 'stat' from 'D:\Program Files (x86)\python36\lib\stat.py'>, <module '_stat' (built-in)>, <module 'ntpath' from 'D:\Program Files (x86)\python36\lib\ntpath.py'>, <module 'genericpath' from 'D:\Program Files (x86)\python36\lib\genericpath.py'>, <module 'ntpath' from 'D:\Program Files (x86)\python36\lib\ntpath.py'>, <module '_collections_abc' from 'D:\Program Files (x86)\python36\lib\_collections_abc.py'>, <module '_sitebuiltins' from 'D:\Program Files (x86)\python36\lib\_sitebuiltins.py'>, <module 'sysconfig' from 'D:\Program Files (x86)\python36\lib\sysconfig.py'>, <module 'sitecustomize' from 'D:\Program Files\JetBrains\PyCharm 2017.3.5\helpers\pycharm_matplotlib_backend\sitecustomize.py'>, <module 'time' (built-in)>])
<module 'time' (built-in)>

Process finished with exit code 0
demo_result
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 import sys
 4 import time
 5 print(sys.modules.keys())
 6 print(sys.modules.values())
 7 print(sys.modules['time'])
 8 
 9 
10 
11 # import sys
12 # print(sys.argv)
13 #
14 # if sys.argv[1]=='post':
15 #     print('执行post操作')
16 #
17 # elif sys.argv[1]=='download':
18 #     print('执行下载操作')
19 
20 # print(sys.argv)
21 
22 
23 
24 
25 # def test():
26 #     if len(sys.argv)==1:
27 #         print('hello,world!')
28 #     elif len(sys.argv)==2:
29 #         print('hello,%s!'%sys.argv[1])
30 #
31 #     else:
32 #         print('输入参数已经超过一个了')
33 #
34 # test()
35 
36 
37 #
38 # import sys
39 # print( sys.argv[0])
40 # print(sys.argv[1])
41 
42 #!/usr/bin/env python3
43 # -*- coding: utf-8 -*-
44 
45 # ' a test module '
46 #
47 # __author__ = 'Michael Liao'
48 #
49 # import sys
50 #
51 # def test():
52 #     args = sys.argv
53 #     if len(args)==1:
54 #         print('Hello, world!')
55 #     elif len(args)==2:
56 #         print('Hello, %s!' % args[1])
57 #     else:
58 #         print('Too many arguments!')
59 #
60 # if __name__=='__main__':
61 #     test()
演示

sys.stdinstdoutstderr

功能:stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

转载:http://www.cnblogs.com/cherishry/p/5725184.html

#-*- coding:utf-8 -*-
import sys


# # print(sys.path)
# print(sys.modules.keys())
# print(sys.modules.values())
# print(sys.modules['sys'])
#
import os

if sys.platform=='win32':
    os.system('dir')

else:
    os.system('ls')


# print(sys.platform)


# def exitfunc(value):
#     print(value)
#     sys.exit(0)
#
# print('hello')
#
# try:
#     sys.exit(1)
# except SystemExit as value:
#     exitfunc(value)
#
# print('come')









#os 模块是和系统shell 进行交互
#sys 模块是和python解释器进行交互

#print(help(sys))
#
# print(sys.argv)
# #sys.argv
#
# print(sys.argv[0])
# print(sys.argv[1])
#
# def post():
#     print('ok')
#
#
#
# def download():
#     print('执行下载功能')
#
#
# if sys.argv[1]=='post':
#     print('执行post上传功能')
#     post()
#
# elif sys.argv[1]=='download':
#     download()
原文地址:https://www.cnblogs.com/Mengchangxin/p/9295238.html