2016-08-19 3 views
1

큰 csv 파일에서 서브 파일을 만듭니다.파이썬을 사용하여 만든 csv 파일에서 빈 줄을 제거하는 방법

  1. 빈 라인은 새로운 CSV 파일의 모든 행
  2. 모든 단어 뒤에 오는 :

    import csv 
    with open('input.csv', 'rb') as csvfile: 
    
        reader = csv.reader(csvfile, delimiter='|', quotechar='|') 
    
        writer1 = csv.writer(open('output.csv', 'w'), delimiter = ' ') 
    
        for row in reader: 
         a = row[0] 
         row = '|'.join(row) 
         if (a=='D1'): 
           writer1.writerow(row) 
    

    이 코드는이 문제를 제공합니다 : 서브 파일은 D1으로 첫 열의 값이 행만 포함 문자 사이에 여분의 공백이 있습니다. 따라서 "안녕하세요"는 "H e l l o"이됩니다. 그래서 당신은 ['Spam']spamwriter.writerow으로 목록을 사용해야 할 것으로 보인다

    import csv 
    with open('eggs.csv', 'w', newline='') as csvfile: 
        spamwriter = csv.writer(csvfile, delimiter=' ', 
              quotechar='|', quoting=csv.QUOTE_MINIMAL) 
        spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) 
        spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 
    

  3. 파이썬의 CSV 문서에서
+1

확인하려면'개방()'(당신에있는 OS?). 샘플 데이터와 출력을 제공하십시오. – handle

+0

참고 사항 (중복 아님) : http://stackoverflow.com/questions/29840849/writing-a-csv-file-in-python-that-works-for-both-python-2-7-and-python -3-3-in/29841468 # 29841468 – cdarke

+0

저는 Windows 7에 있습니다 – Aditya

답변

1

이 코드는 정상적으로 실행됩니다 :

import csv 
with open('input.csv', 'rb') as csvfile: 

    reader = csv.reader(csvfile, delimiter='|', quotechar='|') 

    writer1 = csv.writer(open('output.csv', 'wb'), delimiter = '|') 

    for row in reader: 
     a = row[0] 
     if (a=='D1'): 
       writer1.writerow(row) 

감사를위한 '자동 줄 바꿈 conversion`에 대한 Pedru

0

... ...이 아니 목록 경우,이 메소드 writerow 자체를 만드는 다음과 같은 반복 가능한 입력 목록 :

>>> a = 'ala ma kota' 
>>> list(a) 
['a', 'l', 'a', ' ', 'm', 'a', ' ', 'k', 'o', 't', 'a'] 
관련 문제