2017-02-19 4 views
0

私はCSVファイルを持っています。これをIDである最初の列に基づいてテキストファイルに変換したいと思います。各ファイルには複数の列が含まれています。例えば、ここで複数の列をテキストファイルに取得

file.csv 
id val1 val 2 val3 
1 50 52 60 
2 45 84 96 

となど が私のコードです:

1.text 
50 52 60 
2.text 
45 84 96 

それだけでコンテンツせずにファイルを作成します。

dir_name = '/Users/user/My Documents/test/' 
     with io.open('file1.csv', 'rt',encoding='utf8') as f: 
     reader = csv.reader(f, delimiter=',') 
     next(reader) 
     xx = [] 
     for row in reader: 
     with open(os.path.join(dir_name, row[0] + ".txt"),'a') as f2: 
      xx = row[1:2] 
      f2.write(xx +"\n") 

ので、それはする必要があります。 誰でも助けてくれますか?事前

答えて

0

のおかげでは、問題がいくつかありました:

  1. それは実際に空白区切り値ファイルではなく、カンマ区切り値ファイルです。したがって、区切り文字を,から変更する必要があります。また、空白が繰り返されるため、csvモジュールに追加のフラグを渡すことができます。

  2. 配列の索引付けと文字列への変換でいくつかのファンクがあります。

このプログラムはあなたの要件を満たしている:

#!/usr/bin/python 

import io 
import csv 
import os 

dir_name = './' 
with io.open('input.csv', 'rt',encoding='utf8') as f: 
    reader = csv.reader(f, skipinitialspace=True, delimiter=' ') 
    next(reader) 
    xx = [] 
    for row in reader: 
     filename = os.path.join(dir_name, row[0]) 
     with open(filename + ".txt", 'a') as f2: 
      xx = row[1:] 
      f2.write(" ".join(xx) +"\n") 
関連する問題