Python节省while循环结果

时间:2013-12-09 14:01:24

标签: python

你好我试图从这个while循环中保存打印结果,然后将它们上传到数据库

i=0
x=0
n=0

while x < len(round1):
    n +=1
    print 'match number',n, ':' ,round1[x],scoretop[i],'VS','team:', round1[x+1],scorebottom[i],"\n"
    x=x+2
    i=i+1

我对python完全不熟悉,如果这是一个简单的问题,那就很抱歉

3 个答案:

答案 0 :(得分:1)

如果您使用的是类UNIX系统,则可以运行此命令并将输出重定向到如下文件:

python your-file.py > output.txt

然后您可以手动将输出上传到数据库。

如果您想自动上传结果,您应该将结果保存在列表中,而不是打印它们,然后通过数据库的API上传它们。请查看dg123的答案,了解有关将结果保存在列表中的详细信息。

答案 1 :(得分:0)

预先创建一个数据结构,并在循环中附加到它:

results = [] # A list of the results that 
             # that we will get in the while loop
i=0
x=0
n=0

while x < len(round1):
    n +=1
    results.append(' '.join(map(str,
                                ['match number',
                                n,
                                ':' ,
                                round1[x],
                                scoretop[i],
                                'VS','team:',
                                round1[x+1],scorebottom[i],"\n"])))
    x=x+2
    i=i+1

结果将保存在results列表中,然后您可以循环并发送到数据库:

for i in results:
    send_to_database(i)

或者您可以将所有字符串连接在一起并按照这样的方式发送它们:

send_to_database('\n'.join(results))

答案 2 :(得分:0)

我假设你想要print提交文件,你可以简单地写一个文件:

with open('log.txt', 'w') as outfile:
    while x < len(round1):
    # some operations
    out = ' '.join(map(str, ['match number', n, ':', round1[x], scoretop[i], 'VS', 'team:',  round1[x+1], scorebottom[i], "\n"]))
    outfile.write(out)

如果您正在使用UNIX计算机,请遵循@Ich Und Nicht Du的建议