遍历目录中的多个 rmd 文件
loop over mulitple rrd files in directory
我需要遍历给定目录中的所有 .rrd 文件并在每个 rrd 数据库中获取数据并执行一些操作并将它们导出到 [= 中的单个 csv 文件中16=] 脚本!
如何才能有效地做到这一点?可以建议我如何通过多个文件循环和访问数据库数据吗?
我假设您的系统上已经安装了带有 python 绑定的 rrdtool。如果不是,here是安装说明。
然后,循环遍历给定目录中的 .rrd
个文件并执行提取:
import os
import rrdtool
target_directory = "some/directory/with/rrdfiles"
rrd_files = [os.path.join(target_directory, f) for f in os.listdir(target_directory) if f.endswith('.rrd')]
data_container = []
for rrd_file in rrd_files:
data = rrdtool.fetch(rrd_file, 'AVERAGE' # or whichever CF you need
'--resolution', '200', # for example
) # and any other settings you need
data_container.append(data)
参数列表如下rrdfetch.
一旦在 rrd_files
循环中获得了所需的任何数据,就应该将其累积到一个列表列表中,每个子列表都是一行数据。将它们写入 csv
就这么简单:
import csv
# read the .rrd data as above into a 'data_container' variable
with open('my_data.csv', 'w', newline='') as csv_file:
rrd_writer = csv.writer(csv_file)
for row in data_container:
rrd_writer.writerow(row)
这应该概述了您必须遵循的一般步骤,您可能需要根据您的情况调整它们(特别是 rrdfetch
)。
我需要遍历给定目录中的所有 .rrd 文件并在每个 rrd 数据库中获取数据并执行一些操作并将它们导出到 [= 中的单个 csv 文件中16=] 脚本!
如何才能有效地做到这一点?可以建议我如何通过多个文件循环和访问数据库数据吗?
我假设您的系统上已经安装了带有 python 绑定的 rrdtool。如果不是,here是安装说明。
然后,循环遍历给定目录中的 .rrd
个文件并执行提取:
import os
import rrdtool
target_directory = "some/directory/with/rrdfiles"
rrd_files = [os.path.join(target_directory, f) for f in os.listdir(target_directory) if f.endswith('.rrd')]
data_container = []
for rrd_file in rrd_files:
data = rrdtool.fetch(rrd_file, 'AVERAGE' # or whichever CF you need
'--resolution', '200', # for example
) # and any other settings you need
data_container.append(data)
参数列表如下rrdfetch.
一旦在 rrd_files
循环中获得了所需的任何数据,就应该将其累积到一个列表列表中,每个子列表都是一行数据。将它们写入 csv
就这么简单:
import csv
# read the .rrd data as above into a 'data_container' variable
with open('my_data.csv', 'w', newline='') as csv_file:
rrd_writer = csv.writer(csv_file)
for row in data_container:
rrd_writer.writerow(row)
这应该概述了您必须遵循的一般步骤,您可能需要根据您的情况调整它们(特别是 rrdfetch
)。