2017-09-24 1 views
0

큰 CSV 파일을 반복하면서 효율적인 방법으로 재생하면서 모든 파일 이름과 변수 이름을 새 파일에 쓰려고합니다. itertools에서 islice를 사용하고 있습니다. 누구든지 내 코드보다 효율적인 방법에 대한 조언을 아래에 있습니까? 의견 제안큰 CSV 파일에 대한 루핑

from itertools import islice 
var = len(csv) 

with open("csv_file1.csv") as file1, open("trial1.csv", 'w') as file2: 
    head1 = list(islice(file1, var))[0].split(",") 
    while (var > 1): 
     for line in head1: 
      file2.write(str(head1)) 
      file2.write("\n") 
      var = var - 1 
      print(var) 
file2.close() 
+0

csv 파일에서 변수 이름이 무엇을 의미합니까, 첫 번째 줄 (헤더)을 의미합니까? 그렇지 않으면 함께 일하는 CSV의 일부를 우리에게 보여줄 수 있습니까? – DobromirM

+0

또한 파이썬에는 CSV 파일 구문 세부 정보를 더 잘 추상화 할 수있는 CSV 모듈이 있습니다. –

답변

2
  • 사용 csv 모듈,
  • 은 csv 파일
을, 어떤 스트림 처리를 포함하기위한 좋은 방법은 발전기로 들어오는 파일을 바꿈
def read_csv(filename): 
    with open(filename) as f: 
     reader = csv.reader(f) 
     for row in reader: 
      yield row 

그 후 read_csv("csv_file1.csv")은 for-loop에서 사용하거나지도/필터 함수를 적용 할 수있는 생성기를 제공합니다. 그것은 행 변환의 논리에 따라 다릅니다.