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

如何在python中从csv文件获取输入,python,csv,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中输

我有一个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的值是多少,那么它应该选择
xx.xx.xx.x1
,或者如果我正在寻找
VM
,它应该采用
naa.ac1234
naa\Dev
的方法
vm2

我正在使用Python 2.7.8版

非常感谢您的帮助


感谢使用这样的表格数据,最好的方法是使用熊猫

比如:

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

对于将csv导入python,您可以使用以下代码:

import pandas as pd
df = pd.read_csv('input.csv', sep=' ')
对于在创建的数据框中定位某些行,您可以使用多个选项(您可以在pandas中轻松找到这些选项,或者只需通过谷歌搜索“filter data python”),例如:

df['VM'].where(df['Naa_Dev'] == 'naa.ac1234')
使用该模块将文件读入一个文件。有很多用于读取csv文件的参数。该功能非常有用

解决方案: #导入别名为“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"))

熊猫可能是最好的答案,但你也可以:

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)

你可以查看熊猫你用谷歌搜索过吗?谢谢,这正好符合我的要求。