在 csv 中切片 python

Slicing in python in a csv

我对 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

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

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

会成功的。

例如,

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

您的代码是正确的。

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

您也可以打印行。 如果行已拆分,您会看到类似 [20, 'some string']

的内容

而且你不需要括号:


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

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

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

仅打印第 [1] 行中字符串索引 [0] 处的第一个字符