我有一个csv(input.csv)文件,如下所示:
VM IP Naa_Dev Datastore
vm1 xx.xx.xx.x1 naa.ab1234 ds1
vm2 xx.xx.xx.x2 naa.ac1234 ds1
vm3 xx.xx.xx.x3 naa.ad1234 ds2
我想将此csv
文件用作python脚本的输入文件。在此文件的此处,第一行(VM IP Naa_Dev Datastore
)是列标题,每个值都用空格分隔。
所以我的问题是我们如何使用此csv
文件在python中输入值,因此,如果我需要在python脚本中搜索vm1
IP的值是什么,那么它应该提取{{ 1}}或以同样的方式(如果我正在寻找具有xx.xx.xx.x1
VM
的{{1}}应该采用naa.ac1234
。
我正在使用Naa_Dev
非常感谢您的帮助。
谢谢
答案 0 :(得分:0)
使用这样的表格数据,最好的方法是使用熊猫。
类似的东西:
import pandas
dataframe = pandas.read_csv('csv_file.csv')
# finding IP by vm
print(dataframe[dataframe.VM == 'vm1'].IP)
# OUTPUT: xx.xx.xx.x1
# or find by Naa_Dev
print(dataframe[dataframe.Naa_Dev == 'xx.xx.xx.x2'].VM)
# OUTPUT: vm2
答案 1 :(得分:0)
要将csv导入python,您可以使用pandas,在您的情况下,代码应类似于:
import pandas as pd
df = pd.read_csv('input.csv', sep=' ')
为了在创建的数据框中定位某些行,您可以使用多个选项(可以在熊猫中轻松找到,也可以通过谷歌搜索“ filter data python”轻松找到),例如:
df['VM'].where(df['Naa_Dev'] == 'naa.ac1234')
答案 2 :(得分:0)
使用pandas
模块将文件读入DataFrame
。有 很多 个参数,可用于使用pandas.read_csv
读取csv文件。 dataframe.to_string()函数非常有用。
解决方案: #导入模块,别名为“ pd” 将熊猫作为pd导入
# Open the CSV file, delimiter is set to white space, and then
# we specify the column names.
dframe = pd.read_csv("file.csv",
delimiter=" ",
names=["VM", "IP", "Naa_Dev", "Datastore"])
# print will output the table
print(dframe)
# to_string will allow you to align and adjust content
# e.g justify = left to align columns to the left.
print(dframe.to_string(justify="left"))
答案 3 :(得分:0)
熊猫也许是最好的答案,但您也可以:
import csv
your_list = []
with open('dummy.csv') as csvfile:
reader = csv.DictReader(csvfile, delimiter=' ')
for row in reader:
your_list += [row]
print(your_list)