0

次のようなランダムな数字のリストを作成すると:

columns = 10
rows = 10
for x in range(rows):
    a_list = []                                                    
    for i in range(columns):                                          
        a_list.append(str(random.randint(1000000,99999999)))     
    values = ",".join(str(i) for i in a_list)
    print values

その後、すべてが順調です。

しかし、出力をファイルに送信しようとすると、次のようになります。

sys.stdout = open('random_num.csv', 'w')                  
for i in a_list:
    print ", ".join(map(str, a_list))

10回出力されるのは最後の行だけです。リスト全体を .csv ファイルに書き込むにはどうすればよいですか?

4

3 に答える 3

0

最初の例では、すべての行に対して新しいリストを作成しています。(ちなみに、それらをstrs に 2 回変換する必要はありません)。

2 番目の例では、以前に作成した最後のリストを印刷します。出力を最初のループに移動します。

columns = 10
rows = 10
with open("random_num.csv", "w") as outfile:
    for x in range(rows):
        a_list = [random.randint(1000000,99999999) for i in range(columns)]                                                    
        values = ",".join(str(i) for i in a_list)
        print values
        outfile.write(values + "\n")
于 2013-09-30T05:28:51.507 に答える