2017-11-16 14 views
1

다음 코드는 큰 csv 파일을 반복하고 한 번에 20 회의 관측 블록을 가져 와서 작은 파일로로드합니다. 지오 코딩에 사용되는 것보다 루프 라인 row_count = sum(1 for row in Sales) 파일의 맨 아래에 당신의 독자를두고csv 파일을 반복하여 작업을위한 더 작은 파일을 만들려면 루프가 활성화되지 않음

SalesLoad = open('C:\Users\DillonSaxe\Real Estate\Chi address 2000-2015.csv') 
Sales = csv.reader(SalesLoad) 
Storage = [] 
row_count = sum(1 for row in Sales) 
print row_count 
for row in Sales: 
    if Sales.line_num == 1: 
     Header = row 
     print header 
    elif Sales.line_num%20 != 0 and Sales.line_num != row_count: 
     Storage.append(row) 
    else: 
     Storage.append(row) 
     print row 
     TempLoad = open('C:\Users\DillonSaxe\Real Estate\Temp Geocode File.csv', 'wb') 
     TempGeocode = csv.writer(TempLoad) 
     TempGeocode.writerow(Header) 
     for item in Storage: 
      TempGeocode.writerow(item) 
     TempLoad.close() 
SalesLoad.close() 
print 'Done' 
+1

그냥 조언을 열거 할 수 있습니다 - 당신의 포인터에 대한 (변수) 소문자 이름을 사용하십시오 - "sales_load을"이 아니라 "SalesLoad", "판매"와 "Sales"가 아닌 ... –

+1

다른 조언 : 절대로 폴더와 파일 이름에 공백을 사용하지 마십시오. – Igle

+0

SalesLoad = open ('C : \\ Users \\ DillonSaxe \\ 부동산 \\ Chi 주소 2000-2015.csv') –

답변

0

실행하지 않는 것, 그리고 (끝 제외하고는 첫번째 ROW_COUNT 지난 아무것도 인쇄되지됩니다) 왜 아이디어가 부족했다. 그 라인 다음에 SalesLoad.seek(0)을 추가하거나 루프를 리팩토링하여 행 수를 필요로하지 않습니다.

0

당신은 테스트 라인 번호와 한 번으로 반복 파일

with open('C:\Users\DillonSaxe\Real Estate\Chi address 2000-2015.csv', 'rb') as f 
    reader = csv.reader(f) 
    storage = [line for idx, line in enumerate(reader) if idx%20] 

    with open('C:\Users\DillonSaxe\Real Estate\Temp Geocode File.csv', 'wb') as f 
    writer = csv.writer(f) 
    writer.writerows(storage) 

    print 'Done'