2016-09-07 3 views
1

2つのcsvファイルを作成します。再帰を使用するときに2つのcsvファイルを作成する方法

私はその後、私はそれを介して1つの関数に2配列をループしていますし、それが2つのCSVファイルを作成しますので、全体的なアイデアは、2つのCSVファイルを作成することです

import time 
import datetime 
import csv 
time_value = time.time() 
def csv_write(s): 
    print s 
    f3 = open("import_"+str(int(time_value))+".csv", 'wt') 
    writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL) 
    writer.writerow(s) 
    f3.close() 

def process_array(): 
    a = [["a","b"],["s","v"]] 
    for s in a: 
     csv_write(s) 

process_array() 

csvファイルへの書き込みに別の関数を呼び出していますそれは、2つの配列の要素を持っていますが、上記のコードは、単にファイルを上書きし、コードは、配列が10個の要素を持っている場合

それではコードはどのように行うに10個のCSVファイル

を作成する必要があります最後に一つだけのCSVファイルを作成しますので、それ?

答えて

0

ファイル名に引数を追加する必要があります。この場合

f3 = open("import_"+"".join(s)+"_"+str(int(time_value))+".csv", 'wt') 

aはあなたの例から2つの要素が含まれている場合は(名前に"ab""sv"付き)2つのファイルを持っています。ここではsのすべての項目を連結しているため、最良の解決策ではありません(この連結の結果はリストaの異なる要素で同じになる可能性があるため)。あなたはあなたの関数csv_write(1を追加する拡張する必要があり、この場合

idx = 0 
for s in a: 
    csv_write(s, idx) 
    idx = idx + 1 

:あなたは要素の数を数えることができるforループで

だから、私はこのソリューションを使用することをお勧めしますもっと引数):

def csv_write(s, idx): 
    print s 
    f3 = open("import_"+str(i)+"_"+str(int(time_value))+".csv", 'wt') 
    ... 
0

私は経験豊富なPythonの男ではないんだけど、それは名前のファイルがoutsi一度定義されている時間値のように見えます要素の数を扱うコードです。各配列は、そのtime値と同じtime value.csv名を持ちます。開始時に定義された値で、再度呼び出されることはありません。書き込みコマンドの前にforループの時間値ビットをネストしてみてください。 (配列の長さが2であるため)

1

まず、このコードを実行した後にCSV形式で

import pandas as pd 

a = [["a","b"],["s","v"]] 

df=pd.DataFrame(a) 

i=len(df) 

for j in range(i): 
    df.iloc[:,j].to_csv(str(j)+'.csv',index=False) 

をして保存データフレームに変換、あなたは

を2つのCSVファイルを取得します
関連する問題