首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中编写.csv的硬码频率

在python中编写.csv的硬码频率
EN

Stack Overflow用户
提问于 2021-02-03 11:27:50
回答 1查看 34关注 0票数 0

因此,我正在运行AirSim,并且我有一个收集数据并将其写入文件的应用程序接口。我希望将写入速度的频率限制为60 Hz (或每秒写入60次)。我该怎么做呢。目前,我只在while循环中有write命令。

而True:

代码语言:javascript
复制
gps_data = client.getGpsData().gnss.geo_point
alt = (gps_data.altitude)
lat = (gps_data.latitude)
lon = (gps_data.longitude)
gps_data_struct = [lat,lon,alt]

with open(output_file,'a') as gpscsvfile:
   gpscsvwriter = csv.writer(gpscsvfile)
   gpscsvwriter = gpscsvwriter.writerow(gps_data_struct)    



#print("Altitude: %s\nLatitude %s\nLongitude %s" %(alt,lat,lon) )
if False:
  break
EN

回答 1

Stack Overflow用户

发布于 2021-02-03 11:41:35

好的,所以这假设while True中的所有代码运行时间不到1秒,对吗?如果代码最终花费的时间超过1秒,那么下面的代码将在最后一次运行后每“整秒”运行一次代码。即,如果第一次运行从0开始,耗时1.1秒,那么第二次运行将从2开始。

代码语言:javascript
复制
import time
starttime = time.time()
while True:
    gps_data = client.getGpsData().gnss.geo_point
    alt = gps_data.altitude
    lat = gps_data.latitude
    lon = gps_data.longitude
    gps_data_struct = [lat, lon, alt]

    with open(output_file,'a') as gpscsvfile:
        gpscsvwriter = csv.writer(gpscsvfile)
        gpscsvwriter = gpscsvwriter.writerow(gps_data_struct)
    
    time.sleep(1 - ((time.time() - starttime) % 1))

如果你需要更健壮的东西,你可以看看APScheduler

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66020822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档