Python嵌套循环CSV文件

时间:2016-07-12 19:29:22

标签: python python-3.x csv matplotlib

这个代码只迭代了行数,一旦我想迭代数据中列数的所有行,我很困惑,为什么它没有迭代7次行。

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)

3 个答案:

答案 0 :(得分: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 :(得分:1)

类似的问题:Reading from CSVs in Python repeatedly?

循环浏览文件后,需要重置csvfile的读取位置。

    csvfile.seek(0)

答案 2 :(得分:0)

读完文件中的所有行后,文件数据就会耗尽,没有什么可读的,所以for row in readCsv:循环会立即终止。

如果您想重置文件并重新阅读,则需要关闭该文件并再次打开。