当前位置: 首页 > 面试题库 >

如何使已打开的文件可读(例如sys.stdout)?

秦俊发
2023-03-14
问题内容

我试图获取sys.stdout字符串中的内容。我尝试了明显的方法:

def get_stdout():
    import sys

    print('a')
    print('b')
    print('c')

    repr(sys.stdout)

    contents = ""
    #with open('some_file.txt','r') as f:
    #with open(sys.stdout) as f:
    for line in sys.stdout.readlines():
        contents += line
    print(contents)

但这给出了错误:

Exception has occurred: UnsupportedOperation
not readable

那么,如何更改已打开文件的权限?

我试过了:

    sys.stdout.mode = 'r'

但这仍然会产生相同的错误…

其他可行的stdout方法是以硬件独立的方式获取名称/路径。

可以正常工作的另一件事是让我sys.stdout在字符串中运行主脚本后将内容放入。

如果您遇到像我这样的错误,这些可能是相关的:为什么__builtins__既是模块又是字典
python:__builtin__和__builtins__有什么区别?

错误:

line 37, in my_print
    __builtins__["print"](*args, file=f)  # saves to file
TypeError: 'module' object is not subscriptable

我读过的问题没有帮助:

  • 使文件在Python中可写和可读
  • TypeError:预期的str,字节或os.PathLike对象,而不是_io.TextIOWrapper
  • 通过python中的电子邮件发送未修改的打印语句中的内容

问题答案:

您可以使用以下代码:

import sys
from builtins import print as builtin_print
myfile = "output.txt"
def print(*args):
    builtin_print(*args, file=sys.__stdout__)    # prints to terminal
    with open(myfile, "a+") as f:
        builtin_print(*args, file=f)    # saves in a file

这应该重新定义print函数,以便将其打印到stdout文件中。然后,您可以从文件中读取。



 类似资料:
  • 问题内容: 我试图弄清楚Java applet的类文件在做什么。用记事本或文本板打开它只会显示一堆乱码。 有什么方法可以将其纠缠成某种可读性的格式,以便我可以尝试找出它的作用吗? 环境==安装了带VS 2008的Windows。 问题答案: jd-gui是目前最好的反编译器。与日渐流行的JAD相比,它可以处理Java中的新功能。

  • 本文向大家介绍如何使用PHPExcel打开Excel文件进​​行读写?,包括了如何使用PHPExcel打开Excel文件进​​行读写?的使用技巧和注意事项,需要的朋友参考一下 由于没有意识到PHPExcel对象的来源,因此没有在PHPExcel中打开文件进行读写的概念。不论从何处加载文件或文件类型,都可以根据文件名读取文件并以相同名称保存。这样,文件将被覆盖,新的更改将反映在文件中。 示例 输出结

  • 问题内容: 我想打开文件以使用argparse进行读取。在cmd中,它必须类似于:my_program.py / filepath 那是我的尝试: 问题答案: 参数的类型应为字符串(无论如何都是默认值)。因此,使它像这样:

  • 问题内容: 我有一个将pdf文件作为ByteArrayOutputStream写入servlet的输出流的servlet。如果打开servlet URL,浏览器将打开文件。但是,如果在Servlet上发生错误,浏览器会打开一个带有错误消息的空白pdf。通过ServletResponse发送错误,浏览器将打开默认错误页面。 我要发送错误消息,而不重定向到错误页面或打开无效的pdf文件。 我试过了:

  • 问题内容: 我有一个叫做html的文件。 我打开test.html并使用以下代码块打印内容: 但它可以打印,为什么会发生这种情况,我该如何解决? 顺便说一句。当我打开文本文件时,效果很好。 编辑:我试过这个: 问题答案: 尝试这样的事情。

  • 本文向大家介绍C#如何打开并读取usb的文件目录,包括了C#如何打开并读取usb的文件目录的使用技巧和注意事项,需要的朋友参考一下 下面我通过一个小例子并结合一段代码片段给大家展示下,有需要的朋友可以来借鉴下。 界面上拖一个 button 和treeview  ,运行的时候直接插入优盘,单机按钮就会出现目录文件。不过只能在u盘插入,U盘拔出时,才能接收到信息。 1.[C#]代码     通过以上代