2016-10-17 32 views
1

次のコードを使用して別のcsvファイルFinal.csvにコピーしているcsvファイルTemp.csvがあります。Python - 特定の列番号からcsvに書き込む

dirname = os.path.dirname(os.path.abspath(__file__)) 
csvfilename = os.path.join(dirname, 'Final.csv') 
tempfile = os.path.join(dirname, 'Temp.csv') 
with open(csvfilename, 'wb') as output_file: 
    writer = csv.writer(output_file, delimiter=',') 
    writer.writerow(["Title","This"]) 
    writer.writerow([]) 
    with open(tempfile, 'r') as data_file: 
     for line in data_file: 
      line = line.replace('\n', '') 
      row = line.split(",")    
      writer.writerow(row) 

コードの最後の5行は、私は彼らがまた、私は温度で複数の列を持っているD.列からfinal.csvする書きたい列AからFinal.csvファイルへの書き込みしようとしています。 CSVファイル。これに最適なソリューションは何ですか? Pythonの使用2.7.10。

+0

問題を解決してくださいか? –

+0

いいえ!ありがとうございました! – amazingCodingExperience

答えて

1

EDIT留守番コメント。 3つの空の文字列を先頭に追加するだけですrow

dirname = os.path.dirname(os.path.abspath(__file__)) 
csvfilename = os.path.join(dirname, 'Final.csv') 
tempfile = os.path.join(dirname, 'Temp.csv') 
with open(csvfilename, 'wb') as output_file: 
    writer = csv.writer(output_file, delimiter=',') 
    writer.writerow(["Title","This"]) 
    writer.writerow([]) 
    with open(tempfile, 'r') as data_file: 
     for line in data_file: 
      line = line.replace('\n', '') 
      row = line.split(",") 
      # there are better ways to do this but this is the most straight forward 
      new_row = ['', '', ''] 
      new_row.extend(row)    
      writer.writerow(new_row) 
+0

これは、一時ファイルを列4から最終ファイルに書き込むことになります。つまり、一時ファイルの最初の3つの列は書き込まれず、列4の最終ファイルに書き込まれません。一時ファイル全体が第4列から書き込まれます。 – amazingCodingExperience

+0

あなたは何かをお勧めしますか? – amazingCodingExperience

+0

@amazingCodingExperience申し訳ありませんがあなたの英語を理解できません。いくつかの例を挙げてください、これは助けになるかもしれません。例えば、 –

0

あなたは試すことができます:

with open(tempfile, 'r') as data_file: 
    for line in data_file: 
     line = line.replace('\n', '') 
     row = line.split(",")   
     csvfilename.writerow([row[0]+","+row[3]]) 
関連する問題