log = open('log.txt','a')
print >> log,'hello world' #重定向到文件log.txt中
print 'hello world' #输出到默认位置
这样一来就方便多了,当然类似的方法也可以应用到sys.stdin上,raw_input()就是调用了sys.stdin.read()方法,所以通过本文的阐述,我想大家应该清楚可以怎么做了。
 关注我,了解更多精彩内容
print与sys.stdout在python中,print语句实现打印,从技术角度来说,这是把一个或多个对象转换为其文本表达式形式,然后发送给标准输出流或者类似的文件流,更详细的说,打印与文件和流的概念紧密相连。我们都知道在python中,向一个文件写东西是通过类似file.write(str)方法实现的,而你可能没想到print语句执行的操作其实也是一个写操作,不过他把我们从外设输入的...
考虑以下python程序:复制代码 代码如下:#!/usr/bin/env pythonimport syssys.stdout.write(“stdout1 “)sys.stderr.write(“stderr1 “)sys.stdout.write(“stdout2 “)sys.stderr.write(“stderr2 “)其中的sys.stdout.write也可以换成print。运行这程序,你觉得会输出什么?试验一下,就会发现,其实输出并不是复制代码 代码如下:stdout1 stderr1 stdout2 stderr2而是:复制代码 代码如下:stderr1 stderr2 s
print语法格式
print()函数具有丰富的功能,详细语法格式如下:
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
默认情况下,将值打印到流或sys.stdout。
可选关键字参数:
file:类文件对象(stream); 默认为当前的sys.stdout。
sep:在值之间插入的字符串,默认为空格。
end:在最后一个值后附加的字符串,默认为换行符。
flush:是否强制刷新流。
2、sep可选关键字参数
sep参数可以在值之间插入字符串,默认值为空格。
print(‘1’,‘2’,‘3’,‘4’,
老猿Python博文目录
Python中的标准输出和错误输出由sys模块的stdout、stderr对象负责,所有print语句以及相关的错误信息输出如果要重定向,只需要创建一个类似文件IO的类并将该类的实例替换sys模块的stdout、stderr对象即可。
具体来说,分如下几步完成:
1.print
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional key
当我们在 Python 中打印对象调用 print(obj) 时候,事实上是调用了 sys.stdout.write(obj+'\n')
print 将你需要的内容打印到了控制台,然后追加了一个换行符
print 会调用 sys.stdout 的 write 方法
以下两行在事实上等价:
sys.stdout.write('hello'+'\n')
print('hello')
import sys
temp = sys.stdout
f = open('test.txt'.
print和stdout
提示:本文摘自最近在学习的一本python书中,主要是说明print和stdout之间的关系,说实在需要有一定的基础才能完全看懂,我目前也不是很明白,只是作为记录作用,加深印象,故敲在此处。
理解print语句和sys.stdout之间的等价性是非常重要的。这也是为什么我们可以把sys.stdout重新赋值给用户自定义(能够提供write方法的)的类似文件的对象。因为print语句只是把文本传送给sys.stdout.write方法,所以你可以通过把sys.stdout赋值给一个
sys.stdout.write是Python标准库中的一个函数,它可以将字符串打印到标准输出流(通常是控制台)中。通常,我们使用print语句来打印多行文本,但是如果我们需要在输出过程中实时地显示信息,这时就需要用到sys.stdout.write函数。
当我们在使用sys.stdout.write函数时,如果需要打印多行文本,可以将文本拼接成一个字符串,然后传给函数进行输出。如果需要刷新输出,可以通过调用sys.stdout.flush()方法来实现。
例如,以下代码将循环输出10次几乎相同的文本,并在每次输出后进行刷新:
import sys
import time
for i in range(10):
sys.stdout.write("This is line {}\n".format(i))
sys.stdout.flush()
time.sleep(1)
在上面的代码中,我们使用了time.sleep(1)函数来模拟输出的实时性,每1秒钟输出一行文本。在每次调用sys.stdout.write函数后,使用sys.stdout.flush()方法来立即刷新输出流,这样可以确保文本被立即打印到控制台中,而不是被缓存起来等待更多文本一起输出。
总的来说,sys.stdout.write函数可以用于输出任意类型的文本,并且通过调用sys.stdout.flush()方法可以确保文本及时打印到控制台中。如果需要打印多行文本,可以将文本拼接成一个字符串,然后一次性传给sys.stdout.write函数来输出。