【发布时间】:2020-04-23 08:44:47
【问题描述】:
我有一个 .csv 文件,其中包含以下 4 行元素:
dev1, NX-OS, 10.0.0.1, admin, admin
dev2, NX-OS, 10.0.0.2, admin, admin
dev3, NX-OS, 10.0.0.3, admin, admin
dev4, NX-OS, 10.0.0.4, admin, admin
我正在尝试提取任何元素。为了做到这一点,我有以下几点:
import csv
dev_list=[]
infile=open('dev_in.csv','r')
csv_in=csv.reader(infile)
for dev in csv_in:
dev_list.append(dev)
dev_list 的结果是以下列表:
[
['dev1, NX-OS, 10.0.0.1, admin, admin'],
['dev2, NX-OS, 10.0.0.2, admin, admin'],
['dev3, NX-OS, 10.0.0.3, admin, admin'],
['dev4, NX-OS, 10.0.0.4, admin, admin']
]
为了提取第一个列表的第一个元素,我编码:
element=dev_list[0]
print(element[0])
但是,结果我得到了完整的第一个列表:
dev1, NX-OS, 10.0.0.1, admin, admin
也许我应该使用“split”函数将其拆分,但我认为这会不必要地扩展代码。我需要提取每个子列表的第一个元素。但是,我稍后可能需要提取其他元素。
还有其他方法吗?是否还有更好的方法来编写此代码,也许与列表理解提前谢谢。
【问题讨论】:
-
除非
csv有办法处理分隔符,这正是使用split的时候。它只会添加一行。 -
为什么不使用 Pandas 读取 csv 文件?
-
您根本不需要
split(),csv.reader()已经这样做了。您需要将代码更改为类似于devs = list(csv.reader(open('dev_in.csv'), skipinitialspace=True))。之后devs将是一个列表列表,因此,为了获得开发人员名称,例如,您可以使用for dev in devs: print(dev[0])。 -
您在问题上发布的结果列表不是您从发布的代码中得到的。
-
@accdias 我再次检查了代码,这就是我得到的。你有什么不一样的吗?