【问题标题】:how to save the output of a print statement如何保存打印语句的输出
【发布时间】:2020-09-24 19:51:14
【问题描述】:

我只想将每个 for 循环的打印语句的输出保存到一个名为 test.txt 的文本文件中,并且在文本文件中每个 for 循环输出都应该用 >>> 符号分隔,另外我想放一个文本文件顶部的标题为“column-a”。我尝试的代码如下:

a = ['oof', 'rab', 'zab']
for i in range(1,5):
    for file in a:
        print('>>>')
        data=print(file)
with open(“test.txt”,w) as f: 
f.write(data)

通过执行上面的代码,我得到了如下所示

oof
rab
zab
oof
rab
zab
oof
rab
zab
oof
rab
zab

但我需要如下输出 测试.txt

column-a
>>> 
oof
rab
zab
>>>
oof
rab
zab
>>>
oof
rab
zab
>>>
oof
rab
zab

我希望我能得到一些解决方案。提前致谢。

【问题讨论】:

  • 请用您尝试过的代码更新您的问题。
  • 请从intro tour 重复on topichow to ask。 “告诉我如何解决这个编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后然后就您的算法或技术提出一个具体的问题。在这种情况下,您的字面意思是不可能的:print 输出到stdout,这是一个只写通道。相反,您必须“回显”或重复输出,将其写入文件。
  • @quamrana 我刚刚更新了 q
  • @Prune 我刚刚更新了不起作用的代码
  • @quamrana 我刚刚更新了我尝试过的代码....但不起作用

标签: python numpy for-loop scipy separator


【解决方案1】:

print 语句可用于直接写入带有file 关键字参数的打开文件:

items = ['oof', 'rab', 'zab']

with open('file.txt', 'w') as file:

    # header
    print('column-a', file=file)

    # loop with >>> separators
    for i in range(5):
        print('>>>', file=file)

        # print list items
        for item in items:
            print(item, file=file)

上面的代码创建了一个file.txt 文件,内容如下:

column-a
>>>
oof
rab
zab
>>>
oof
rab
zab
>>>
oof
rab
zab
>>>
oof
rab
zab
>>>
oof
rab
zab

【讨论】:

    【解决方案2】:

    您只需要写入文件并打印到屏幕上。请注意,您的代码中还有 UTF-8 "66 & 99" 双引号,而不是简单的 " 字符。

    a = ['oof', 'rab', 'zab']
    f = open( "test.txt", "wt" )
    for i in range( 1, 5 ):
        for word in a:
            print( word )
            f.write( word + "\n" )
        print( '>>>' )
        f.write( '>>>' + "\n" )
    f.close()
    
                
    

    【讨论】:

    • 非常感谢....还有一件事丢失...我想在保存的 test.txt 文件的顶部添加第 1 列,然后是 >>>
    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    相关资源
    最近更新 更多