将输出写入文件

时间:2019-06-16 11:22:19

标签: python

我正在创建一个创建序列号的简单程序

我使用的代码

import random
import string

charList = ["A", "B", "C"]
g560List = ["LX38200", "LX38201", "LX38202"]

whatSerial = input("Choose a serial to generate").upper()

def g560(g560List, charList):
    return g560List + charList + "8" + " -> G560")
if whatSerial == "G560":
    for i in g560List:
        for i2 in charList:
            print(g560(i, i2))

现在这可以正常工作。该程序从控制台中打印了所有可能的序列号,但是我想对其进行更改,以便将其保存到文件中(例如:它将创建一个名为“ output.txt”的文件,然后将所有输出保存在此处)。

我该如何实现?

3 个答案:

答案 0 :(得分:2)

您可以使用以下方法相对轻松地打印到文件:

with open('output.txt', 'w') as outFile:
    print('something', file=outFile)
    print('something else', file=outFile)

为了确保效率,请确保先打开文件,然后再打印with中的所有内容(可能在if和第一个for之间)。

答案 1 :(得分:1)

您可以简单地使用shell重定向标准输出:

python myprog.py > output.txt

如果您想在Python中完成所有操作,则应使用以下内容:

with open('output.txt', 'w') as f:
    if whatSerial == "G560":
        for i in g560List:
            for i2 in charList:
                print(g560(i, i2), file=f)

答案 2 :(得分:1)

如果要将输出从stdout重定向到文件,也可以通过以下方式进行操作:

from contextlib import redirect_stdout

with open('output.txt', 'w') as f:
    with redirect_stdout(f):
        print('it now prints to "output.text"')

但是,如果您是python的新手,并且想要简化操作,请遵循paxdiablo的回答。

参考:contextlib.redirect_stdout


编辑:没有人发布最基本的解决方案-写入文件:

with open('output.txt', 'w') as f:
    f.write('stuff to be saved to the file')