sys模块与MBCS多字节字符系统

sys模块

sys.argv 命令行参数List,第一个元素是程序本身路径

命令行参数
通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:

>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']

错误输出重定向和程序终止
sys 还有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息。

>>> sys.stderr.write('Warning, log file not found starting a new one\n')
Warning, log file not found starting a new one

大多脚本的定向终止都使用 "sys.exit()"。


sys.exit(n)        退出程序,正常退出时exit(0),n可以是参数,比如字符串byebye
>>> sys.exit('bye')
bye

然后就退出了

sys.version 获取Python解释程序的版本信息
sys.maxsize 最大的Int值
2147483647
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
'win32'
sys.stdout.write('please:') #标准输出 , 引出进度条的例子, 注,在py3上不行,可以用print代替

>>> sys.stdout.write('please:')
please:7
#这里的7是表示有7个字符
val = sys.stdin.readline()[:-1] #标准输入
>>> sys.stdin.readline()
hey
'hey\n'
>>> sys.stdin.readline()[:-1]
sdf
'sdf'
#注意区别,后面会帮你删掉换行符,一次输入一行

sys.getrecursionlimit() #获取最大递归层数
sys.setrecursionlimit(1200) #设置最大递归层数,很少往大了改,一般都是往小了改
sys.getdefaultencoding() #获取解释器默认编码
sys.getfilesystemencoding #获取内存数据存到文件里的默认编码

>>> sys.getfilesystemencoding()

MBCS

(Multi-Byte Chactacter System,即多字节字符系统)

它是编码的一种类型,而不是某个特定编码的名称。
字符基础:ASCII,DBCS,Unicode
所有的string类都是以C-style字符串为基础的。C-style字符串是字符数组。字符类型有三种编码格式:

  • 第一种是单字节字符集(single byte character set or SBCS)。在这种编码格式下,所有字符都只用一个字节表示,ASCII码就是单字节字符。用"0"来表示一个字节的结束。
  • 第二种编码格式是多字节字符集(multi-byte character set or MBCS)。在Windows里的MBCS包含两种字符类型:单字节字符(single byte characters)和双字节字符(double byte characters)。由于Windows里使用的多字节字符绝大部分是两个字节长,MBCS常被DBCS代替。
  • 第三种编码格式是Unicode。Unicode是一种所有的字符都使用两个字节编码的编码模式。Unicode字符有时也被称作宽字符。

==Unicode与MBCS的区别是:MBCS字符可以使用不同长度的字节编码==

猜你喜欢

转载自www.cnblogs.com/welljoy/p/9209907.html