You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROS Noetic下如何引用循环变量生成12个不同命名的bag文件

解决ROS Noetic循环生成带数字命名bag文件的问题

你的代码问题在于命令字符串里的x.bag是固定字面量,循环变量x没有被替换为实际数值,导致每次都会生成同名文件并覆盖。以下是几种可行的修正方案:

方案1:使用f-string(推荐,Python3.6+支持)

这是最直观简洁的字符串格式化方式,直接在字符串中嵌入变量:

import rospy
import os

# 确保目标目录存在,避免rosbag报错
bag_dir = '/home/mubashir/catkin_ws/src/germany1_trush/rosbag/'
os.makedirs(bag_dir, exist_ok=True)

for x in range(12): 
    cmd = f'rosbag record -o {bag_dir}{x}.bag /web_cam --duration 5'
    os.system(cmd)

方案2:使用str.format()

兼容更早Python版本的格式化方式:

import rospy
import os

bag_dir = '/home/mubashir/catkin_ws/src/germany1_trush/rosbag/'
os.makedirs(bag_dir, exist_ok=True)

for x in range(12): 
    cmd = 'rosbag record -o {}{}.bag /web_cam --duration 5'.format(bag_dir, x)
    os.system(cmd)

额外说明

  • 如果需要生成的bag文件从1开始编号(而非默认从0开始),只需把range(12)改为range(1, 13)
  • os.makedirs(..., exist_ok=True)会自动创建目标目录,若目录已存在则不会报错,避免因目录缺失导致rosbag录制失败

内容的提问来源于stack exchange,提问作者Mubashir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:10:34