Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法

1.标准输入

input()、raw_input()

Python 3.x 中 input() 函数可以实现提示输入,python 2.x 中要使用 raw_input(),例如:

foo = input("Enter: ")  # python 2.x 要用 raw_input()
print("You input: [%s]" % (foo))

# 测试执行
Enter: abc de
You input: [abc de]     # 读取一行(不含换行符)

sys.stdin

使用 sys.stdin 可以获取标准输入的文件句柄对象,例如:

import sys

print("Enter a line: ")
line = sys.stdin.readline()     # 读取一行(包括换行符)
print("Line: [%s]\n%s" % (line, "-"*20))

print("Enter a character: ")
char = sys.stdin.read(1)        # 读取一个字节
print("Char: [%s]\n%s" % (char, "-"*20))

print("Enter a multi-lines: ")
lines = sys.stdin.read()        # 读取到文件尾
print("Lines: [%s]" % (lines))


# 测试执行
Enter a line:
This is a single line   <======== 输入了一行,然后回车
Line: [This is a single line
]                       <======== 输出有换行符
--------------------
Enter a character:
abc                     <======== 输入了三个字节
Char: [a]               <======== 只读取了一个字节
--------------------
Enter a multi-lines:
first line
second line
last line               <======== 输入三行(换行)后,windows 下按 Ctrl+Z,linux 下按 Ctrl + D 结束输入
Lines: [bc              <======== 上一次未读完的三个字节(两个字符 + 一个换行符)
first line
second line
last line
]                       <======== 最后一行也有换行符

2.标准输出

print

print 可以自动换行,例如:

print("%s is %0.2f, %d is a integer" % ("PI", 3.14, 123))   # 格式同 C 语言中的 printf()
print("{0} is {1}, {2} is a integer".format("PI", 3.14, 123))
print("{foo} is {bar}, {qux} is a integer".format(foo="PI", bar=3.14, qux=123))
#Python小白学习交流群:711312441
# 测试执行
PI is 3.14, 123 is a integer
PI is 3.14, 123 is a integer
PI is 3.14, 123 is a integer

sys.stdout

使用 sys.stdout 可以获取标准输出的文件句柄对象,例如:

import sys
sys.stdout.write("%s is %0.2f, %d is a integer\n" % ("PI", 3.14, 123))   # 格式同 C 语言中的 printf()
sys.stdout.write("{0} is {1}, {2} is a integer\n".format("PI", 3.14, 123))
sys.stdout.write("{foo} is {bar}, {qux} is a integer\n".format(foo="PI", bar=3.14, qux=123))

执行结果与 print 的示例一样。(注:write()不会自动换行,这里加了换行符)

3.标准错误

sys.stdout

使用 sys.stderr 可以获取标准错误的文件句柄对象,示例略(将 sys.stdout 中示例中的 stdout 替换为 stderr 即可)。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python ,`subprocess.Popen` 函数用于创建一个新的进程来执行一个外部的命令或程序。在创建进程时,可以使用 `stdin`、`stdout` 和 `stderr` 参数来控制子进程的输入输出。 具体来说: - `stdin` 参数用于指定子进程的标准输入。如果 `stdin` 参数被设置为 `subprocess.PIPE`,则表示将子进程的标准输入连接到父进程的输出管道,父进程可以通过 `process.stdin` 属性来向子进程写入数据。如果 `stdin` 参数被设置为一个文件对象,则表示将子进程的标准输入连接到该文件对象。 - `stdout` 参数用于指定子进程的标准输出。如果 `stdout` 参数被设置为 `subprocess.PIPE`,则表示将子进程的标准输出连接到父进程的输入管道,父进程可以通过 `process.stdout` 属性来读取子进程的输出数据。如果 `stdout` 参数被设置为一个文件对象,则表示将子进程的标准输出连接到该文件对象。 - `stderr` 参数用于指定子进程的标准错误输出。如果 `stderr` 参数被设置为 `subprocess.PIPE`,则表示将子进程的标准错误输出连接到父进程的输入管道,父进程可以通过 `process.stderr` 属性来读取子进程的错误输出数据。如果 `stderr` 参数被设置为一个文件对象,则表示将子进程的标准错误输出连接到该文件对象。 在使用 `subprocess.Popen` 函数创建子进程时,可以同时设置 `stdin`、`stdout` 和 `stderr` 参数。例如,下面的代码演示了如何创建一个子进程,将其标准输入标准输出标准错误输出分别连接到三个不同的管道: ```python import subprocess process = subprocess.Popen(["python", "my_script.py"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) ``` 在这个例子,我们创建了一个名为 `process` 的子进程,执行了一个名为 `my_script.py` 的 Python 脚本,并将其标准输入标准输出标准错误输出分别连接到了三个不同的管道。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值