如何将(if-else)的print语句的输出重定向到Python中的文本文件

时间:2015-04-02 04:50:50

标签: python redirect python-3.x python-3.5

我有这段代码,并将输出打印到txt文件。 但是每当我打开文件时 f = open(“out.txt”,“w”)它显示意外的缩进。我想我将代码行放在错误的位置。 谁能帮忙。

if(cp<0):

    print("No Common Predecessor")
elif (posa < posb):

    if(posa<0):
        posa=0
    print("Common Predecessor: %s" %n[posa])
else:

    if(posb < 0):
        posb=0
    print("Common Predecessor: %s" %m[posb])

1 个答案:

答案 0 :(得分:1)

在Python3中,输出重定向就像

一样简单
print(....., file = open("filename",'w'))

参考docs

在您的特定情况下,您甚至可以使用

中的with open语法
if(cp<0):

    print("No Common Predecessor")
elif (posa < posb):

    if(posa<0):
        posa=0
    with open('out.txt','w')as f:
        print("Common Predecessor: %s" %n[posa])
        f.write("Common Predecessor: %s" %n[posa])
else:

    if(posb < 0):
        posb=0
    with open('anotherout.txt','w')as f:
        print("Common Predecessor: %s" %m[posb])
        f.write("Common Predecessor: %s" %m[posb])

注意 - 如果您正在重新执行该程序,最好使用'a'(追加)而不是'w'