print支持输出重定向到文件

#!/usr/bin/env python

#-*-coding:utf-8-*-


import os

import pandas as pd

import calendar

import datetime

import MySQLdb

import os, sys, re,string

import time, tarfile,getopt

import redis


num = open('num.txt','a')

for i in range(1,101):

    print i

    print >> num , i

num.close()


### Python `print` 输出重定向文件 在Python中,有多种方法可以将`print`语句的输出重定向文件。一种常见的方式是通过修改`sys.stdout`来改变默认的标准输出目标。 当打开一个文件用于写入时,可以通过设置`sys.stdout`指向这个新打开的文件对象,从而使得后续所有的`print`调用都会把数据发送给此文件而不是屏幕[^2]: ```python import sys with open("output.txt", "w") as f: original_stdout = sys.stdout # 保存原始标准输出 sys.stdout = f # 更改标准输出为目标文件 print("Hello, World!") print("This is a test.") sys.stdout = original_stdout # 恢复原来的stdout配置 ``` 另一种更灵活的做法是在每次打印时指定不同的输出目的地,而不需要更改全局的`sys.stdout`属性。这可通过使用带有额外参数的形式化版本的`print()`函数完成,在这种情况下,可以直接向特定的对象(比如字符串缓冲区或另一个文件)写入内容而不干扰正常的终端显示[^1]: ```python from io import StringIO import sys memo = StringIO() serr = sys.stderr file = open('out.txt', 'w+') print >>memo, 'StringIO' print >>serr, 'stderr' print >>file, 'file' file.close() print(memo.getvalue()) ``` 值得注意的是,如果打算长期替代`sys.stdout`,应该确保所提供的自定义类尽可能模仿真实的文件行为,特别是对于那些依赖于`sys.stdout`内部特性的外部模块来说更为重要[^3]。 此外,还有专门设计用来处理日志记录场景下的解决方案,例如创建模拟文件接口的日志处理器实例,它允许开发者轻松地将程序中的消息导向至日记系统或其他地方[^4]。 最后,对于某些特殊情况,如需捕获子进程中产生的输出,则可能需要用到操作系统级别的工具和技术来进行全面的I/O流控制和重定位[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值