python 中的 sys.stdin ,sys.stdout 和sys.stderr

文档解释:

File objects used by the interpreter for standard input, output and errors:

  • stdin is used for all interactive input (including calls to input());

  • stdout is used for the output of print() and expression statements and for the prompts of input();

  • The interpreter’s own prompts and its error messages go to stderr.

1.sys.stdin

sys.stdin是一个标准化输入的方法

 input 等价于sys.stdin.readline()

import sys

print('Enter your name: ')
name = sys.stdin.readline()
print('Hello ',name)

nickname = input("enter your name: ")
print('Hello',nickname + '\n')

sys.stdin.readline()可以实现标准输入,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换。
try:
    while 1:
        print('please input a number: ')
        n = int(sys.stdin.readline().strip('\n'))
        print('please input some numbers: ')  # 若是多输入,strip()默认是以空格分割,返回一个包含多个字符串的list
        sn = sys.stdin.readline().strip()
        if sn == '':
            break
        sn = list(map(int,sn.split())) # 将列表元素转化成int类型
        print(n)
        print(sn,'\n')
except:
    pass

拓展:map(function,iterable,...)

map() 会根据提供的函数对指定序列做映射。

def square(x):
    return x ** 2

ret = map(square, [1, 2, 3, 4, 5])
print(list(ret))# [1, 4, 9, 16, 25]

2.sys.stdout 

stdout用于print和状态表达式的结果输出,及input()的瞬时输出

2.1 python的print 等价于sys.stdout.write()

import os

sys.stdout.write("hello world" + "\n")
print("hello world")

2.2 sys.stdout 重定向

import  os
import sys
temp = sys.stdout
f = open('test.txt','w')
print('heyyy')  # 打印到终端

# 之后使用print函数,都将内容打印到test.txt 文件中
sys.stdout = f 
print('hello')  # 打印到文件中

# 恢复print函数打印到终端上
sys.stdout = temp
print('恢复')  # 打印到终端
f.close()

3.sys.stderr

stderr与stdout一样,用于重定向错误信息至某个文件。

import sys
import traceback
__stderr__ = sys.stderr
sys.stderr = open('errorlog_abc.txt','a')


# 使用traceback 函数定位错误信息
try:
    1/0
except:
    traceback.print_exc()

运行结果如下:

 

  • 7
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: sys.stderr.write 是 Python 编程语言的一个函数,用于将文本输出到标准错误流(stderr)。它的用法和 print 函数类似,只是输出的目的地不同。通常在程序出现错误时使用 sys.stderr.write 来输出错误信息。 ### 回答2: sys.stderr.write是Python的标准库sys的一个函数,用于向标准错误输出流(stderr)写入数据。 标准错误输出流是在命令行终端输出错误信息的通道,通常用于输出程序错误信息或警告。与标准输出流(stdout)不同,标准错误输出流的数据在输出时不会被缓冲,即使在程序发生错误时也能够立即显示错误信息。 使用sys.stderr.write函数时,需要将要输出的内容作为参数传递给这个函数,它会将内容写入标准错误输出流。这个函数会返回写入的字符数。 下面是一个简单的例子,演示了如何使用sys.stderr.write函数输出错误信息: ``` import sys try: # 执行某些可能会引发错误的操作 result = 10 / 0 except: # 捕捉到异常后,使用sys.stderr.write输出错误信息 sys.stderr.write("发生错误:除数不能为零\n") ``` 在上述例子,当程序执行到result = 10 / 0时会引发一个ZeroDivisionError异常,程序会跳转到except块。在except块,我们使用sys.stderr.write函数输出了错误信息"发生错误:除数不能为零"到标准错误输出流。 总之,sys.stderr.write函数是Python用于向标准错误输出流写入数据的函数,能够帮助我们在程序运行过程输出错误信息或警告,方便调试和错误排查。 ### 回答3: sys.stderr.write是Python内置的一个函数,用于将给定的字符串输出到标准错误流(stderr。 在Python,通常有三个标准流:标准输入流(stdin)、标准输出流(stdout)和标准错误流(stderr)。标准输入流用于接收来自用户的输入,标准输出流用于输出程序的结果,而标准错误流用于输出程序的错误信息。 sys.stderr.write函数可以将给定的字符串输出到标准错误流,相当于将错误信息显示在命令行或终端。它的使用方式很简单,只需传入一个字符串作为参数即可。 例如,我们可以这样使用sys.stderr.write函数: import sys sys.stderr.write("这是一个错误信息。\n") 这段代码会将字符串"这是一个错误信息。\n"输出到标准错误流。注意,在字符串末尾加上"\n"表示换行,以便在输出时使信息更易读。 sys.stderr.write函数的输出是实时的,会立即在命令行或终端显示。它通常用于在程序出现错误时给出提示或打印错误信息,帮助用户调试程序。 总而言之,sys.stderr.write函数是Python用于将字符串输出到标准错误流的函数,它在命令行或终端显示错误信息,方便程序调试和错误处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值