我有一个关于在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
答案 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]处的第一个字符