python sys模块常用方法总结

it2024-08-03  37

上一篇总结os模块,该模块与 sys 模块从名称上看着好像有点类似,实际上关系不大,os 模块主要负责与操作系统进行交互,而这个两个模块常常搭配起来使用, 能实现许多需求。sys 模块主要负责与 Python 解释器进行交互,提供了一系列用于控制 Python 运行环境的函数和变量。本文为常用的sys模块用法总结。

1 返回操作系统平台名称

sys.platform 'win32'

2 获取Python解释器的版本信息

sys.version '3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]'

3 返回当前默认的字符编码格式

sys.getdefaultencoding() 'utf-8'

4 sys.argv 当运行该脚本时,用来向解释器传递参数。是一个列表,第一个参数默认是脚本本身路径, 运行py文件后面跟着的内容被作为后续的参数传递给程序。看懂下面这个栗子即可; 创建sys.py如下

import sys sys.hexversion if len(sys.argv) == 1: print (sys.argv[0]) elif sys.argv[1]=='version' : print(sys.version) elif sys.argv[1]=='platform': print(sys.platform) else : print('Vague instructions')

在cmd中调用sys.py

C:\Users\yuanwanli> python C:\Users\sys.py C:\Users\sys.py C:\Users\yuanwanli>python C:\Users\sys.py platform win32 C:\Users\yuanwanli>python C:\Users\sys.py version 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] C:\Users\yuanwanli>python C:\Users\sys.py x Vague instructions

5 sys.stdin #(standard input) sys.stdin.readline()的功能相当于input(), ,其默认输入的格式都是字符串,其区别只在于两点:

input()括号内可以直接填写提示文字, 如input(‘Please input a number:’ ), 而sys.stdin.readline()不可以;sys.stdin.readline()会获取每行数据的最后的换行符’\n’, 而input()忽略; a = input('please input int:') b = sys.stdin.readline() print(list(a), list(b)) # 都输入 1 ['1'] ['1', '\n']

sys.stdin.readline().strip(’\n’) 可以删除换行符’\n’ , 达到和input()同样的效果

a = input('please input int:') b = sys.stdin.readline().strip('\n') print(list(a), list(b)) # 都输入 1 ['1'] ['1']

sys.stdin.readline() 输入是字符串格式,需要int, float 可以使用map函数转换

a = sys.stdin.readline().strip('\n') a = list(map(int, a.split())) print(a) # 输入1 2 [1, 2]

6 sys.stdout #(standard output) 当我们在 Python 中打印对象调用 print(x)时候,事实上是调用了 sys.stdout.write(x+’\n’) print 将你需要的内容打印到了控制台,然后追加了一个换行符, 如下:

sys.stdout.write('hello\n') print('hello') hello hello

这是sys模块的基础用法,更全面的方法请参考sys官方文档https://docs.python.org/zh-cn/3/library/sys.html?highlight=sys#module-sys

最新回复(0)