如何在csv文件中选择speicifc colum和row

时间:2017-07-24 02:46:06

标签: python csv

CSV文件如下所示

,1,2,3,4,5 1,ITN122A,ITN122A,ICJ122A,SCI092F,DIG102A 2,DIG102A,PIA072C,ENC112A,DIG102A,VBS112A 3,ITN112A,ENC112A,ITN112A,ICJ122A,ITN122A 4,DIG092A,ICJ122A,ITN122A,DIG092A,ITN121A 5,SCI092H,DIG092A,DIG102A,ITN112A,ICJ122A

我想要做的是从CSV中选择一个特定的行和列,并将其设置为变量,然后将该数据写入其他csv文件。

例如,如果它是星期一和下午12:20它将选择第1行(星期一)和第4列(星期二下午12:20),因此它将选择DIG092A然后将该数据写入另一个csv文件

我知道您可以选择行并打印整行/列,但如何选择特定行。

谢谢:)

1 个答案:

答案 0 :(得分:0)

我不知道这是否是最佳方式,但我通过阅读CSV中的每一行并将其添加到一个大的行列表中来处理类似的情况。像这样:

import csv
dataList = []
with open('yourfile.csv', 'r') as csvfile:
  csvreader = csv.reader(csvfile)
  for row in csvreader:
     dataList.append(row)
csvfile.close()

然后,您可以使用常规python列表索引访问每个行和列。例如,在您的示例中,您可以去:

dataList[2]

并获取

[2,DIG102A,PIA072C,ENC112A,DIG102A,VBS112A]

dataList[2][2]

并获取

PIA072C

然后按the documentation

中所述写入新的csv文件

修改

正如评论中所讨论的那样,您可以将它添加到一周中,将P2添加到底部:

Monday = 1
P2 = 2

print(dataList[Monday][P2])

使用您的数据,它应该打印:

ITN122A

请注意,Python从0开始计数,因此"第2列"实际上是第三列。如果这让人感到困惑,可以在Python中的列表索引中阅读。 This看起来像是一个很好的介绍。