2016-07-12 2 views
2

이 코드는 데이터의 열 수에 대한 모든 행을 반복하고 싶을 때만 행 번호를 반복합니다. 이유는 무엇입니까? 7 번 행.파이썬 중첩 루프 용 CSV 파일

import csv 
from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
import numpy as np 

sensorData  = [] 
longitudinal = [] 
transverse  = [] 

n=0 
with open('test3.csv') as csvfile: 
    readCsv = csv.reader(csvfile, delimiter =',') 
    for x in range(0,7): #problem HERE 
     for row in readCsv: 
      n+=1 
      sensorData.append(float(row[x])) 

      longitudinal.append(n) 

      transverse.append(x) 
+0

csv 파일에 어떤 데이터가 포함될 것으로 예상하십니까? 행에 7 개의 항목이 있습니까? – lafferc

+0

예 csv에 정확히 7 열의 특정 열이 있습니다. – JabbaJava

+0

for 루프의 순서가 잘못되었습니다. 각 행의 열을 반복하지 않고 전체 CSV 파일을 7 번 읽으려고합니다. – kdopen

답변

0

비슷한 질문 : 파일을 통해 Reading from CSVs in Python repeatedly?

후 루프, 당신은 csvfile의 읽기 위치를 재설정 할 필요가있다.

csvfile.seek(0) 
+0

감사합니다! 바깥 쪽 for 루프의 끝에이 줄을 추가 한 후 원하는대로 작동했습니다. – JabbaJava

+0

아무 문제 없어, upvote 주셔서 감사합니다! –

+0

그러나 나는 이것을 100 % upvote 하겠지만, 나는 upvote에 필요한 평판 (15)이 없다. – JabbaJava

1

코드에는 7 번 루프하는 외부 루프가 있으며 내부 루프는 각 행을 반복합니다. 내부 루프와 외부 루프를 바꿔야합니다. 각 열

with open('test3.csv') as csvfile: 
    readCsv = csv.reader(csvfile, delimiter =',') 
    for row in readCsv: 
     for x in range(0,7): 
      n+=1 
      sensorData.append(float(row[x])) 
+1

원래 코드가 잘못된 이유에 대한 몇 가지 설명이 좋을 것입니다 (예, 분명합니다. 그러나 분명하지 않은 질문을했을 것입니다). – kdopen

0

당신이 파일의 모든 행을 읽고 나면, 파일 데이터가 소진되고 아무것도를 통해 각 행 루프에 대한

은 그래서 당신의 for row in readCsv: 루프가 즉시 종료, 읽기 떠났다.

파일을 다시 설정하고 다시 읽으려면 파일을 닫은 다음 다시 열어야합니다. 여기