Python csv文件/ next()/ while循环

时间:2016-05-11 17:06:49

标签: python csv

这应该很容易,但因为我仍然是一个菜鸟,我被卡住了。

while循环运行了一段时间步。我想从csv文件中插入一些变量,csv文件中的每个单元都有3个整数(x,y,angle),这些整数必须被分配并传递给模拟。

这是我的尝试,但是如你所见,我仍然需要学习很多,但也许有人可以帮我解决这个问题。

...........step = 0
while traci.simulation.getMinExpectedNumber() > 0:
      simulationStep()
       with open('myfile.csv', 'r') as f:
         lines = f.next() 
         new = lines.split(",",)
         x = new[0]
         y = new[1]
         angle = new[2]   

       vehicle.moveTo(vehid01, x, y, angle)  
       step += 1........

我想每个步骤存储一行;传递这些变量。因此,当下一个时间步骤开始时,应该读取,传递csv文件的下一行,依此类推。所以新时间步,新线不起作用.x,y角度值不会改变。

有什么建议吗?谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

这有用吗?

...........step = 0

with open('myfile.csv', 'r') as f:
    while traci.simulation.getMinExpectedNumber() > 0:
        simulationStep()
        lines = next(f)  # compatible with Python 3
        new = lines.split(",")
        x = new[0]
        y = new[1]
        angle = new[2]   

        vehicle.moveTo(vehid01, x, y, angle)  
        step += 1........

答案 1 :(得分:0)

您可以使用csv模块委派解析。

import csv
with open('myfile.csv') as f:
    step = 0
    reader = csv.reader(f)
    while traci.simulation.getMinExpectedNumber() > 0:
        simulationStep()
        x, y, angle = [float(i) for i in next(reader)]  # reader.next() for 2.x
        vehicle.moveTo(vehid01, x, y, angle)  
        step += 1