GVKun编程网logo

Python print输出重定向到文件和屏幕,超简单(python标准输出重定向)

11

关于Pythonprint输出重定向到文件和屏幕,超简单和python标准输出重定向的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bash把所有屏幕输出重定向到文件并保持屏幕输出的方法、

关于Python print输出重定向到文件和屏幕,超简单python标准输出重定向的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bash把所有屏幕输出重定向到文件并保持屏幕输出的方法、Bash脚本记录和STDOUT和STDERR重定向到文件和屏幕,以便进行用户交互、IPython:将Python脚本的输出重定向到文件(如bash>)、java System.out.println 输出重定向到文件中等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

Python print输出重定向到文件和屏幕,超简单(python标准输出重定向)

Python print输出重定向到文件和屏幕,超简单(python标准输出重定向)


import sys
import os
 
class Logger(object):
    def __init__(self, filename="log.txt"):
        self.terminal = sys.stdout
        self.log = open(filename, "a")
 
    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)
 
    def flush(self):
        pass

path = os.path.abspath(os.path.dirname(__file__))
type = sys.getfilesystemencoding()
sys.stdout = Logger()
print(453453)
print(path)
print(type)


<footer><br> <h3id="autoid-2-0-0"><br> <br> <center> <span>微信公众号:AutoML机器学习</span><br> <img src="https://ask.qcloudimg.com/draft/1215004/21ra82axnz.jpg"> </center> <b>MARSGGBO</b><b><span>♥</span>原创</b><br> <span>如有意合作或学术讨论欢迎私戳联系~<br>邮箱:marsggbo@foxmail.com</span> <b><br> 2020.03.1 <p></p> </b><p><b></b><br> </p></h3><br> </footer>

bash把所有屏幕输出重定向到文件并保持屏幕输出的方法

bash把所有屏幕输出重定向到文件并保持屏幕输出的方法


输出到文件log中,并在屏幕上显示:
#ls >&1 | tee log

追加输出到文件log中,并在屏幕上显示:
#ls >&1 | tee -a log

Bash脚本记录和STDOUT和STDERR重定向到文件和屏幕,以便进行用户交互

Bash脚本记录和STDOUT和STDERR重定向到文件和屏幕,以便进行用户交互

您可以通过在重定向之前将流复制到另一个文件描述符中来保存流。

$: exec 3>&1 >>$outfile 2> >(tee -a $outfile >&2)
$: date     # goes to log
$: date >&3 # goes to console
Tue,Sep 15,2020  8:24:19 AM

c.f。 https://www.gnu.org/software/bash/manual/html_node/Redirections.html

IPython:将Python脚本的输出重定向到文件(如bash>)

IPython:将Python脚本的输出重定向到文件(如bash>)

我有一个要在IPython中运行的Python脚本。我想将输出重定向(写入)到文件,类似于:

python my_script.py > my_output.txt

当我在IPython中运行脚本时如何执行此操作,例如 execfile(''my_script.py'')

有一个较旧的页面描述了可以编写的用于执行此操作的函数,但是我相信现在有一种内置的执行方法,我只是找不到。

答案1

小编典典

IPython拥有自己的上下文管理器来捕获stdout /
err,但是它不重定向到文件,而是重定向到对象:

from IPython.utils import iowith io.capture_output() as captured:    %run my_script.pyprint captured.stdout # prints stdout from your script

并且此功能%%capture在Cell-
Magic中公开,如Cell
Magics示例笔记本中所示。

这是一个简单的上下文管理器,因此您可以编写自己的版本以重定向到文件:

class redirect_output(object):    """context manager for reditrecting stdout/err to files"""    def __init__(self, stdout='''', stderr=''''):        self.stdout = stdout        self.stderr = stderr    def __enter__(self):        self.sys_stdout = sys.stdout        self.sys_stderr = sys.stderr        if self.stdout:            sys.stdout = open(self.stdout, ''w'')        if self.stderr:            if self.stderr == self.stdout:                sys.stderr = sys.stdout            else:                sys.stderr = open(self.stderr, ''w'')    def __exit__(self, exc_type, exc_value, traceback):        sys.stdout = self.sys_stdout        sys.stderr = self.sys_stderr

您可以通过以下方式调用:

with redirect_output("my_output.txt"):    %run my_script.py

java System.out.println 输出重定向到文件中

java System.out.println 输出重定向到文件中

 

import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Date;

public class SystemOutTest {
    public static void main(String[] args) throws Exception {
        String property = System.getProperties().getProperty("user.home");
        String filePath = property.replace("\\", "/");
        String fileName = filePath + "/out.txt";
        try {
            System.setOut(new PrintStream(new FileOutputStream(fileName)));
            while (true) {
                Thread.sleep(5000);
                System.out.println(new Date());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

今天关于Python print输出重定向到文件和屏幕,超简单python标准输出重定向的分享就到这里,希望大家有所收获,若想了解更多关于bash把所有屏幕输出重定向到文件并保持屏幕输出的方法、Bash脚本记录和STDOUT和STDERR重定向到文件和屏幕,以便进行用户交互、IPython:将Python脚本的输出重定向到文件(如bash>)、java System.out.println 输出重定向到文件中等相关知识,可以在本站进行查询。

本文标签: