2017-12-20 1 views
2

CSV 파일 콘텐츠가 있습니다. 여기서 분리 문자는 | 줄에서 공백을 제거하고 싶습니다. 나는 파일을 | 공간의 각 요소를 제거하지만 새로운 CSV에 쓰면 공간이 다시 도입됩니다. 파이썬에서이 모든 작업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 row]'를 원한다고 생각합니다. – mgilson

답변

1

귀하의 라인

out.writerow(row) 

다시 원래의 row 기록합니다. 코멘트에 @mgilson에 의해 지적, (aList는 루프와 aListelements를 추가하는 이동의 창조와)

out.writerow(aList) 

뭔가를 시도하거나 직접 row 수정 :

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 
관련 문제