关于python的输出重定向

如何用python实现输出重定向到标准输出和文件两个地方,就像linux的tee命令一样... 如何用python实现输出重定向到标准输出和文件两个地方,就像linux 的tee命令一样 展开
 我来答
牛乃茴
2014-03-21 · 尘世间的一个小书童。
牛乃茴
采纳数:35 获赞数:345

向TA提问 私信TA
展开全部
import sys
f = open('a.txt','w')
print >>sys.stdout,'hello,world'
hello,world
print >>f,'hello,world'
f.close()

输出到屏幕的内容重定向到文件,供参考。

另,print函数的源码

def print(stream):
  """ print(value, ..., sep=' ', end='\\n', file=sys.stdout)
  
  Prints the values to a stream, or to sys.stdout by default.
  Optional keyword arguments:
  file: a file-like object (stream); defaults to the current sys.stdout.
  sep:  string inserted between values, default a space.
  end:  string appended after the last value, default a newline. """
  pass
YarcoWang
2014-03-13 · TA获得超过100个赞
知道答主
回答量:98
采纳率:0%
帮助的人:86万
展开全部

判断是否有argv

>>> import sys
>>> print sys.argv
['']

比如假如你的脚本:  cmd [-i file] 这样子的. 那么判断是否传递了 file 这个参数,  有么就打开文件, 没有就从stdin/stdout里读写.

追问
是要同时输出到屏幕上和log文件里的
追答

... 汗... 那还不一样?

你不会只会写入一个文件吧?

import sys
s = 'bala...bala...bala...'

fp = open('./log', 'w')
fp.write(s)
fp.close()
sys.stdout.write(s)

...

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式