Python模块之sys

1. sys模块的常见函数列表

  • sys.argv
    获取命令行参数,返回值是List,第一个元素是程序本身
[bsjk@bridge script]$ cat test.py
import sys
print(sys.argv)

[bsjk@bridge script]$ python test.py a b c
['test.py', 'a', 'b', 'c']
  • sys.exit(n)
      程序退出,如果是正常退出是sys.exit(0),这里的参数可以自己填,但是对于程序是怎样退出的应该传参是几,应该自己定义好,这样别人在运行你的程序的时候才知道你是怎样退出的,是正常退出还是意外退出。
      例子,待完成…

  • sys.path
      功能:返回模块的搜索路径,初始化时使用Python path环境变量的值,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
      sys.path.append(“自定义模块路径”)

  • sys.stdout, sys.stdin,sys.stderror
      sys.stdout.write和print 都是输出相关的函数print内部也是调用的sys.stdout,sys.stdout默认输出是屏幕。

import sys
s = 'test stdout'
print('--')
sys.stdout.write(s) #sys.stdout.write默认不换行
print('--')
class A(object):
    pass
print(A)
sys.stdout.write(A) #sys.stdout.write只可以输出字符串类型,否则报错

    结果是:

================ RESTART: C:\Users\Yoke\Desktop\test\test.py ================
--
test stdout--
<class '__main__.A'>
Traceback (most recent call last):
  File "C:\Users\Yoke\Desktop\test\test.py", line 9, in <module>
    sys.stdout.write(A)
TypeError: must be str, not type

2. sys.stdout\in\error

当你 print 某些东西时,结果前往 stdout 管道。
stdout 是一个类文件对象;调用它的 write 函数可以打印出你给定的任何字符串。
实际上,这就是 print 函数真正做的事情;它在你打印的字符串后面加上一个硬回车,然后调用 sys.stdout.write 函数。
stdout 是类文件对象,但是它是只写的,它没有 read 方法,只有 write 方法。然而,它仍然是类文件对象,因此你可以将其它任何 (类) 文件对象赋值给它们来重定向其输出。

  • 使用sys重定向输出
import sys
print ("game start")        # 标准输出
saveout = sys.stdout        # 在重定向前保存stdout,这样的话之后你还可以将其设回正常
f = open('out.log', 'w')    # 定义文件对象f
sys.stdout = f
'''
所有后续的输出都会被重定向到刚才打开的新文件上。
为啥这么说呢,因为print相当于sys.stdout.write加了一个硬回车,
所以重定义sys.stdout后,print相当于f.write加个回车。
'''
# 这样只会将输出结果“打印”到日志文件中,屏幕上不会看到输出
print('This message will be logged instead of displayed')    
print("I am back") 
sys.stdout = saveout   # 将stdout设回原来的方式
f.close()     # 关闭文件对象
print('game over!') # 标准输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值