ROS笔记之在指定目录及其子目录中查找包含特定ROS话题的bag文件,并输出这些文件的路径
代码
import os
import subprocessdef find_bags_with_topic(root_directory, topic):bags_with_topic = []for dirpath, _, filenames in os.walk(root_directory):for filename in filenames:if filename.endswith(".bag"):filepath = os.path.join(dirpath, filename)result = subprocess.run(['rosbag', 'info', '--yaml', filepath], stdout=subprocess.PIPE, stderr=subprocess.PIPE)output = result.stdout.decode('utf-8')if topic in output:bags_with_topic.append(filepath)return bags_with_topicroot_directory = '/path/to/your/bag/files'
topic = '/your/target/topic'
bags = find_bags_with_topic(root_directory, topic)print("Bags containing the topic:")
for bag in bags:print(bag)