2014-01-15 2 views
0

각 행이 원본 CSV 파일 중 하나를 나타내는 단일 CSV 파일로 변환하려는 CSV 파일이 있습니다. CSV 패키지를 사용하고 있으며 원래 CSV 파일에서 항목을 읽을 수있는 방법을 이미 알아 냈습니다. 또한 하나의 행, 즉 생성하려는 단일 CSV에 대한 헤더 ('가격', '날짜'및 '수량'과 같은 열 이름 포함) 만 포함하는 템플릿 CSV 파일이 있습니다. 헤더 이름을 사용하여 특정 CSV 행/열에 쓰기

with open ('TemplateFile.csv', 'w') as TemplateFile: 
    TemplateFileWriter = csv.writer(TemplateFile, delimiter=';') 
    # I already have references to all the files I want to access in the variable fileList 
    for f in fileList:    
     with open(f, 'r') as InputFile:    
      InputFileReader = list(csv.reader(InputFile, delimiter=';'))       
      # This is where I store the 'Price' variable.   
      tmp = InputFileReader[3][3] 

지금, 내가 무엇을 하시겠습니까 "가격"으로 발생하는 것과 같은 열에서 TemplateFile에서 특정 행에 tmp을 저장하는 편리한 방법을 가지고있다. CSV 패키지에서 읽은 적이 있는데 writeDictWrite 두 가지 모두를 읽을 수는 있지만 문서를 읽을 수 없습니다.

내가하고 싶은 것은 내 마지막 줄이 같은 궁극적 :

TemplateFileWriter[myPrefferedRow]['Price'] = tmp 

내가 여기에없는 뭔가를 달성하기 위해 노력하고 또는이는 CSV 패키지와 함께 할 수 있습니까?

+0

"tmp 저장"이란 무엇을 의미합니까? –

+0

@JoelCornett 죄송합니다. 모든 사항을 업데이트하지 않고 게시물을 변경했습니다. 첫 번째 코드 블록의 마지막 변수를 참조했습니다. 현재는 거기에 있습니다. – Speldosa

+0

Ah. 예제 입력과 출력을 제공 할 수 있습니까? CSV의 5-10 줄이면 충분합니다. –

답변

1

csv.readercsv.writer을 가지고 읽기 전용 당신이 행을 읽고로 넣어 list(csv.reader(...))를 사용하여 같은 행을 쓰기 목록을 나열하면 출력물 목록 (또는 dicts) 목록을 만들고 원하는대로 항목을 수정 한 다음 TemplateFileWriter.writerows()을 사용하여 파일에 출력 할 수 있습니다.

+0

나는 이것을 시험해 보겠다. – Speldosa

0

numpy 패키지는 당신이 원하는 것을 할 수있는 loadtxt 기능 ...

import numpy as np 
def foo(fname):  
    yourdata = np.loadtxt(fname, delimiter=';') 
    return yourdata[3,3] 
+0

이 코드는'InputFileReader [3] [3]'이 내 코드에서 수행하는 것과 정확히 일치하는 것으로 보이거나 여기에 뭔가 빠졌습니까? – Speldosa

+0

나는 cvs reader에 대한 경험이 없지만,이 함수는 세 번째 행의 세 번째 요소를 ASCII 파일로 제공해야한다. '#'로 표시된 머리글은 자동으로 무시됩니다. – asPlankBridge

관련 문제