当前位置:首页>python>Python开发从零开始-40.5-编程环境交互

Python开发从零开始-40.5-编程环境交互

  • 2026-09-10 22:22:08
Python开发从零开始-40.5-编程环境交互

接上文Python开发从零开始-40.4-编程环境交互,本文小编与大家分享 Python 编程环境交互的相关知识。

2、重定向标准输入输出流

Python 的标准输入输出流默认输入和输出设备分别为:

  • 标准输入流 (sys.stdin)‌:接受键盘输入‌;

  • 标准输出流 ((sys.stdout)‌:输出屏幕显示‌;

  • 标准错误流 ((sys.stderr)‌:输出屏幕显示。

可以通过输入输出流对象重定向输入和输出源,通常用于日志记录或测试模拟。例如:

  • 标准输入流重定向为从文件或其他来源读取数据;

  • 标准输出或标准错误流输出重定向到文件、自定义对象或网络上的其他计算机。

(1)标准输入流重定向

1)使用操作系统级重定向(命令行方式)

在命令行中使用操作系统的重定向符号 " < ",这是 Python 最常见的标准输入流重定向方式。其步骤为:

① 编写 Python 脚本(如 script.py)

a = int(input())b = int(input())print(a + b)

② 新建输入文本文件(如 data.txt)

1020

③ 使用命令行(使用命令提示符 cmd ,不能使用 PowerShell),并输入以下命令

python script.py < data.txt

命令提示符显示:

2)sys.stdin 重定向

sys.stdin 是一个类文件对象,支持 read()、readline() 等方法。这意味着只要提供一个兼容文件接口的对象,就可以替代默认的标准输入。

sys.stdin 重定向示例如下:

以上示例是将 sys.stdin 重定向为从文件(data.txt)读取,然后再使用 sys.__stdin__ 属性恢复默认输入源。

【小编提示】

sys.__stdin__ 属性是 sys 模块中保存的标准输入流(stdin)初始对象‌(只读)。‌‌其主要作用是:

  • 备份原始流‌:在程序启动时,Python 解释器会将 sys.stdin 的初始值备份到 sys.__stdin__。

  • ‌用于恢复‌:当代码通过 sys.stdin 重定向输入源后,可通过将其重新赋值为 sys.__stdin__ 来‌恢复‌到最初的标准输入状态(键盘输入)。‌‌

(2)标准输出流重定向

1)使用操作系统级重定向(命令行方式)

在命令行中使用操作系统的重定向符号 " > ",对标准输出流进行重定向。其步骤为:

① 编写 Python 脚本(如 script_out.py)

print("这是重定向到文件的测试文本")

② 使用命令行(命令提示符 cmd 、PowerShell 均可,但不可混用),并输入以下命令。

python script_out.py > data_out.txt

命令运行后,会生成 data_out.txt 文件,打印输出到该文件中。

2)sys.stdout 重定向

sys.stdout 也是一个类文件对象,支持 write() 方法。可以将 sys.stdout 指向文件对象,这样就可以替代默认的标准输出,将输出内容写入文件。

sys.stdout 重定向示例如下:

程序使用了变量存储 sys.stdout 初始值,并在输出结束后,将标准输出流恢复为初始状态。运行后,会生成 output.txt 文件,标准输出流会输出到该文件中。

(3)标准错误流重定向

1)使用操作系统级重定向(命令行方式)

在命令行中使用操作系统的重定向符号 " 2> ",对标准错误流进行重定向。其步骤为:

① 编写 Python 脚本(如 script_err.py)

import syssys.stderr.write("这是错误测试文本\n")

② 使用命令行(命令提示符 cmd 、PowerShell 均可,但不可混用。cmd 仅显示错误信息,PowerShell 会显示调用栈信息),并输入以下命令

python script_err.py 2> data_err.txt

命令运行后,会生成 data_err.txt 文件,错误信息输出到该文件中。

3)sys.stderr 重定向

sys.stderr 也是一个类文件对象,可以将 sys.stderr 指向文件对象,这样就可以替代默认的标准错误输出,将输出内容写入文件。

sys.stderr 重定向示例如下:

运行后,会生成 error_log.txt 文件,标准错误流会输出到该文件中。

Python 的标准输入输出流及其重定向内容非常丰富。例如,结合contextlib 模块中的上下文管理器可以更为便捷地进行重定向;结合 socket 模块可以将输出重定向到网络其他计算机等等。这些大家可以查阅官方文档和通过网络教程了解和使用,小编不再深入介绍。

受文章篇幅所限,下文将继续介绍 Python 编程环境交互的相关知识。

最新文章

随机文章