2017-12-20 7 views
2

私はCSVファイルのコンテンツを持っています。ここで区切り記号は|私は行からスペースを削除したい。私はファイルを|スペースの各要素を削除しますが、新しいCSVに書き込むときにスペースが戻ってきます。このすべてをPythonで行います。csvを区切り、空白を削除して新しいCSVを生成します

| 1497/1 | ACERNO-1 | 1 | 99000010119101 | RUCOPY:データベースツリーコピー| LEGACY_DATA | 283 | OFDB_IT_SIEP |

import csv 
aList=[] 
workingdir = r"C:\Users\Akshay.Jain\Desktop\CAREER CONNECT" 
csvfile = workingdir+r"\01_Wells.csv" 
out = csv.writer(open("myfile.csv","w",newline=''),delimiter=',') 

with open(csvfile, 'r') as f: 
    reader = csv.reader(f, skipinitialspace=True,delimiter='|', quoting=csv.QUOTE_NONE) 
    for row in reader: 
     for elements in row: 

      elements.strip() 
      aList.append(row) 

     out.writerow(row) 
+0

上のスペースがあります2つの間の両側| ' しかし、私はここにそれらを投稿したときには表示されません –

+1

内側のループではなく、 'row = [e.strip()in e] – mgilson

答えて

1

あなたのライン

out.writerow(row) 

再び元rowを書き込みます。コメントで@mgilsonで指摘したように、(ループにしてaListelementsを追加することで移動aListの作成に)または直接rowを変更

out.writerow(aList) 

のようなものを試してみてください:

for row in reader: 
    row = [x.strip() for x in row] 
    out.writerow(row) 
+0

これは良いスポットです – CodeCupboard

0
import csv 
aList=[] 
workingdir = r"C:\Users\Akshay.Jain\Desktop\CAREER CONNECT" 
csvfile = workingdir+r"\01_Wells.csv" 
out = csv.writer(open("myfile.csv","w",newline=''),delimiter=',') 

with open(csvfile, 'r') as f: 
    reader = csv.reader(f, skipinitialspace=True,delimiter='|', quoting=csv.QUOTE_NONE) 
    for row in reader: 
     for elements in row: 

      elements.strip() 
      aList.append(elements[:-1]) # Add element by element, removing last item. 

     out.writerow(aList[1: -1]) # Write list without first or last item, they are "," 

出力:

1497/1,ACERNO-1,1,99000010119101,RUCOPY :Database tree copy,LEGACY_DATA,283,OFDB_IT_SIEP 
関連する問題