繁体   English   中英

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

[英]Python csv file / next() / while loop

这应该真的很容易,但是由于我还是菜鸟,所以我被卡住了。

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角度值不会改变。

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

这样行吗?

...........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........

您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM