在csv中以python切片

时间:2015-12-22 13:38:57

标签: python csv slice

我有一个关于在python中切片的问题。我正在使用csv文件,我想只获得行中与用户将指定的另一个值对应的第一个值。例如,我的csv文件如下所示:

| Date | Wind (mph) |
|------|------------|
| 20   | W 3        |
| 20   | W 3        |
| 20   | Vrbl 5     |
| 19   | Vrbl 7     |
| 19   | W 7        |

我想只获得与输入日期对应的第一个风向值。从那里,我想只得到第一个字母。例如,如果我要求20日的日期,我想要wind = w。我想我需要切片,但我不知道在哪里。

import csv
date = (raw_input("Please enter a date within the past three days (format: for 12/2/15, enter '02'): "))
with open('wind.csv', 'rb') as csvfile_wind:
    reader3 = csv.reader(csvfile_wind)
    for row in reader3: 
        if(row[0]) == date:
            wind = (row[1])
            print wind

3 个答案:

答案 0 :(得分:0)

csv文件中的分隔符是什么? 无论如何,我认为

row[1].split(" ")[0]

会做到这一点。

如,

In [1]: "w 3".split(" ")[0]
Out[1]: 'w'

答案 1 :(得分:0)

您的代码是正确的。

请尝试添加一些参数csv.reader(csvfile_wind, dialect='excel-tab', delimiter=';')

您也可以打印行。 如果行已经分裂,您可以看到类似[20,'某些字符串']

的内容

你不需要括号:


if row[0] == date:
   wind = row[1]
   print wind

答案 2 :(得分:0)

你真的不需要拆分它。 你可以做到

if(row[0]) == date:
            wind = row[1][0]
            print wind

仅打印行[1]

中字符串的索引[0]处的第一个字符