我有一个充满CSV文件的目录,其中包含有关虚拟机使用的资源的信息。这些文件名为“ VM资源-2018-06-01 070001.csv”等,包含约400行。
我目前仅对提取一台服务器(称为MAILSERVER01)以及条目VMName
(索引0),Total Storage (GB)
(索引8)和文件中的日期感兴趣。名称。
我可以使用类似的东西:
import os
import glob
import pandas as pd
import numpy as np
path = "my_dir_full_path"
allFiles = glob.glob(os.path.join(path,"*.csv"))
但这不会给我我需要的日期字段。我希望最终能够将此信息插入到时间序列中,以预测服务器(全部400台)何时可能需要磁盘扩展,但临时需要创建时间序列数据。
我正在尝试获取如下所示的CSV输出文件:
VMName,Total Storage (GB),Date
MAILSERVER01,600,2018-06-01
MAILSERVER01,600,2018-06-02
MAILSERVER01,610,2018-06-03
答案 0 :(得分:1)
这可以使用内置的CSV库完成,如下所示:
top
为您提供一个from operator import itemgetter
import csv
import glob
req_fields = itemgetter(0, 8) # Used to extract the two required fields from a list
header = ["VMName", "Total Storage (GB)", "Date"]
with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(header)
for filename in glob.glob(r'VM Resources*.csv'):
date = filename.split()[3] # split on spaces and take the 4th part
with open(filename, newline='') as f_input:
csv_input = csv.reader(f_input)
header = next(csv_input) # skip the header
for row in csv_input:
output_row = list(req_fields(row)) + [date]
csv_output.writerow(output_row)
文件,看起来像这样:
output.csv
在Python 3.6.7上测试