我正在创建一个创建序列号的简单程序
我使用的代码
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”的文件,然后将所有输出保存在此处)。
我该如何实现?
答案 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的回答。
编辑:没有人发布最基本的解决方案-写入文件:
with open('output.txt', 'w') as f:
f.write('stuff to be saved to the file')