如何从python中的csv文件获取输入

时间:2018-08-09 09:37:32

标签: python csv

我有一个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

非常感谢您的帮助。

谢谢

4 个答案:

答案 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)