我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Python】重定向 Stream 到

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Python】重定向 Stream 到

Python 系统模块 sys 中有三个变量 stdinstdoutstderr ,分别对应标准输入流、输出流与错误流。stdin 默认指向键盘, stdoutstderr 默认指向控制台。

print 方法与 sys.stdout.write()的作用基本相同,后者不会打印额外的符号,并且会将打印字符数作为返回值返回;intput 方法与 sys.stdin.readline() 也很类似,后者会读入输入的每一个字符,包括换行符。

>>> import sys
>>> # 测试输出
... 
>>> word = 'Exciting'
>>> n1 = print(word)
Exciting
>>> n1 # 因为print没有返回值,所以 n1 是空值
>>> type(n1)
<class 'NoneType'>
>>> n2 = sys.stdout.write(word + '\n')
Exciting
>>> n2 # len(word) + len('\n') = 9
9
>>> type(n2)
<class 'int'>
>>> # 测试输入
... 
>>> w1 = input()
hello
>>> w1
'hello'
>>> w2 = sys.stdin.readline()
hello
>>> w2 # w2 包括换行符
'hello\n'

sys.stdinsys.stdoutsys.stderr 是三个变量,这意味着我们可以将它们的值修改成我们需要的对象类型,比如文件对象。

文本作为输入流与错误流

>>> out = sys.stdout # 首先要将默认的输出流对象存起来
>>> fout = open('outfile', 'w')
>>> sys.stdout = fout
>>> for i in range(10):
...     print(i)
... 
>>> fout.close()
>>> sys.stdout = out # 回复默认输出流对象

现在在命令行 cat 一下 outfile 文件

$ cat outfile
0
1
2
3
4
5
6
7
8
9

重定向错误流的方法与之类似

>>> err = sys.stderr
>>> ferr = open('errfile', 'w')
>>> sys.stderr = ferr
>>> s # 输入一个没有声明过的变量
>>> ferr.close()
>>> sys.stderr = err

在命令行 cat errfile

$ cat errfile
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 's' is not defined

可以看到,之前在 python shell 中没有显示的错误日志,现在被写入到 errfile 里面了

文件作为输入流

先准备好要读入的文本文件

$ echo -e 'hello\nthis\nexcitng\nworld' > infile
$ cat infile
hello
this
excitng
world

在 python shell 中测试一下

>>> in_stream = sys.stdin
>>> fin = open('infile', 'r')
>>> sys.stdin = fin
>>> s = input()
>>> while s:
...     print(s)
...     s = input()
... 
hello
this
excitng
world
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
EOFError: EOF when reading a line
>>> fin.close()
>>> sys.stdin = in_stream

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Python】重定向 Stream 到

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【Python】重定向 Stream 到

Python 系统模块 sys 中有三个变量 stdin 、 stdout 与 stderr ,分别对应标准输入流、输出流与错误流。stdin 默认指向键盘, stdout 与 stderr 默认指向控制台。print 方法与 sys.st
2023-01-31

Nginx如何将HTTP重定向到HTTPS

这篇文章的内容主要围绕Nginx如何将HTTP重定向到HTTPS进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Nginx是一个强大的重定向工具,可以
2023-06-28

springboot怎么重定向到其他网址

在Spring Boot中,可以使用`RedirectView`类来实现重定向到其他网址。首先,在你的控制器类中创建一个请求处理方法,然后使用`RedirectView`来创建一个重定向视图,并设置要重定向的网址,如下所示:import
2023-10-26

如何重定向到另一个网页

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《如何重定向到另一个网页》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题内容我想做的事情我想在注册过程成功时重定向到索引页面。问题是什么填
如何重定向到另一个网页
2024-04-05

django重定向

return HttpResponseRedirect('/index/')# 重定向返回url格式:http://127.0.0.1:8000/index/会去掉前期的所有路由重新写入/index/'路由urls代码from django
2023-01-30

python 重定向获取真实url

楼主在做公司项目的时候遇到url重定向的问题,因此上网简单查找,作出如下结果由于使用的是语言是python所以以下是python的简单解决方案http_headers = { 'Accept': '*/*','Connection': 'k
2023-01-31

php怎么重定向css文件到指定域名

正文重定向CSS文件的方法包括:.htaccess重定向:使用RewriteRule。PHP:使用header()函数。Web服务器配置:Apache的RedirectMatch或Nginx的rewrite。CDN重定向:通过CDN提供商。HTML:使用带有指定URL的标签。最佳实践包括使用永久重定向、相对URL、考虑性能影响和彻底测试。
php怎么重定向css文件到指定域名
2024-04-12

php怎么重定向css文件到指定域名

要重定向CSS文件到指定域名,可以使用PHP的header函数来实现。以下是一个示例代码:```php$cssFilePath = "path/to/your/css/file.css";$redirectDomain = "http://
2023-08-19

linux shell数据重定向(输入重定向与输出重定向)详细分析

在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录