摘自http://5ydycm.blog.51cto.com/115934/304324

stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

从网上摘抄的文章,供大家参考:

#testing stdout

print 'Hello World!'

运行hello.py就会在标准输出的屏幕上打印 Hello World!, 我们再编一个简单的标准输入的小程序 sayhi.py:

#testing stdin

print 'Hi, %s!' % raw_input('Please enter your name:')

当你用键盘输入你的名字后,程序在屏幕上输出Hi,[你的名字]!, 这就是从标准输入:键盘获取信息,再输出到标准输出:屏幕的例子。

那么上面的例子中print 和 raw_input是如何与标准输入/输出流建立关系的呢?

其实Python程序的标准输入/输出/出错流定义在sys模块中,分别 为: sys.stdin, sys.stdout, sys.stderr

上面的程序分别与下列的程序是一样的:

import sys

sys.stdout.write('Hello World!')

import sys

print 'Please enter your name:',

name=sys.stdin.readline()[:-1]

print 'Hi, %s!' % name

那么sys.stdin, sys.stdout, stderr到底是什么呢?我们在Python运行环境中输入以下代码:

import sys

for f in (sys.stdin, sys.stdout, sys.stderr): print f

输出为:

', mode 'r' at 892210>

', mode 'w' at 892270>

', mode 'w at 8922d0>

由此可以看出stdin, stdout, stderr在Python中无非都是文件属性的对象,他们在Python启动时自动与Shell 环境中的标准输入,输出,出错关联。

而Python程序的在Shell中的I/O重定向与本文开始时举的DOS命令的重定向完全相同,其实这种重定向是由Shell来提供的,与Python 本身并无关系。那么我们是否可以在Python程序内部将stdin,stdout,stderr读写操作重定向到一个内部对象呢?答案是肯定的。

Python提供了一个StringIO模块来完成这个设想,比如:

from StringIO import StringIO

import sys

buff =StringIO()

temp = sys.stdout #保存标准I/O流

sys.stdout = buff #将标准I/O流重定向到buff对象

print 42, 'hello', 0.001

sys.stdout =temp #恢复标准I/O流

print buff.getvalue()

python标准输入多行文字_python如何输入多行数据相关推荐

  1. java制作九行九列表格_将文中后9行文字转换成一个9行4列的表格,设置表格居中,表格列宽为2.5厘米..._考试资料网...

    问答题在考生文件夹下打开文档word.docx,按照要求完成下列操作并以该文件名(word.docx)保存文档. [文档开始] 2009年北平市中考招生计划低于10万人 晨报讯伴随初中毕业生人数连年下 ...

  2. python中如何输入多行文字_python中怎么输入多行字符串 | 学会python

    关键词:疾风 不言 生存 努力 人生 起风了 方法 字符串 输入 斜杠 更多 详细内容 相关文章 中文网 引号 Python中输入多行字符串: 方法一:使用三引号>>> str1 = ...

  3. python怎么多行输入_python如何输入多行

    Python中的Input()函数在输入时,遇到回车符,那么一次输入就结束了.这不能满足输入多行文本并且行数也不确定的情形,当然输入空行也是允许的. 方法1:利用异常处理机制实现lines=[] wh ...

  4. python无法读取excel文字_Python帮你做Excel——读取Excel文档

    相信很多坐在办公室上班的朋友每天都需要处理大量的数据,我们常常用Excel制作电子表格来帮助我们处理它们.这当然是一种非常好的做法,但是我相信大家都会发现,很多表格的内容其实大同小异,常常需要我们把同 ...

  5. python批量识别图片中文字_python实现中文图片文字识别--OCR about chinese text--tesseract...

    0.我的环境: win7 32bits python 3.5 pycharm 5.0 1.相关库 安装pillow: pip install pillow 安装tesseract: 自带了英文语言包, ...

  6. python离线录音转文字_Python将文字转成语音并读出来的实例详解

    前言 本篇文章主要介绍,如何利用Python来实现将文字转成语音.将文字转成语音主要有两种不同的实现方法:先将文字转成语音,然后再通过读取语音实现发音.直接调用系统内置的语音引擎实现发音,后一种方法的 ...

  7. python图片转换成文字_Python输出汉字字库及将文字转换为图片的方法

    用python输出汉字字库问题1:假设我们知道汉字编码范围是0x4E00到0x9FA5,怎么从十六进制的编码转成人类可读的字呢? 问题2:怎么把unicode编码的字写入文件呢,如果直接用open() ...

  8. latex 多行公式_Markdown中输入多行并列的公式

    本篇旨在以两个Markdown文件编辑器-Typora与Visual Code Studio为例, 说明对于多行并列公式不同的处理方式. Latex中输入多行并列公式 在latex文件编辑器中使用al ...

  9. python自动输入文字_Python自动输入【新手必学】

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:哈喽哈嘿哈 这篇文章是我的第一篇文章,写的不好的地方,请大家多多指教哈,另 ...

  10. python turtle库输出文字_Python 海龟 turtle 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计...

    一.输入/输出文字 在 1. 输出文字 输出文字可以使用 write() 方法来实现,语法如下: def write(self, arg, move=False, align="left&q ...

最新文章

  1. 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件
  2. 计算机编程免费ppt,计算机编程与C概述课件.ppt
  3. python2和python3关系_升级python2至python3解决依赖关系
  4. 如何成为一名有效的软件工程师
  5. java 数据溢出和编译错误的差别
  6. mysql学习(2)-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误
  7. day42-mysql索引
  8. 【codevs1576】最长严格上升子序列
  9. 高亮显示不区分大小写的关键字——ASP
  10. ezd格式文件怎么打开_EPLAN Electric P8 中的 EDZ 文件格式
  11. 算法导论终于看完了~
  12. 最新win10系统激活教程
  13. c语言指数公式_c语言指数函数详解
  14. BMZCTF-MISC(一) WriteUp
  15. sina vistor system
  16. iPhone OS 4.0发布 苹果手机进入多任务时代
  17. A review of 3D vessel lumen segmentation techniques: Models, features and extraction schemes
  18. Scapy的介绍(一)
  19. TensorFlow Eager 教程(转)
  20. 【计算机基础】二进制和十进制的转换计算

热门文章

  1. vuejs 开发中踩到的坑
  2. linux清空日志文件内容 (转)
  3. django基础入门(3)django中模板
  4. asp.net学习笔记1
  5. 垃圾收集器分类与GC性能指标
  6. Set集合之CopyOnWriteArraySet
  7. MySQL5.6 新特性之GTID
  8. XenServer 6.5实战系列之九:Creating a VM Template from a VM Snapshot
  9. iOS,Core Graphics
  10. HDU 1242 特殊化带结构体BFS