2015-12-22 90 views
0

我有一個關於在python中切片的問題。我正在處理一個csv文件,我想只獲取與用戶指定的另一個值相對應的行中的第一個值。例如,我的csv文件如下所示:在python中切片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

不是超級熟悉的'csv'庫,如此忍受我。上面的代碼是否打印爲「W 3」,並且您希望它僅打印「W」?另外,你想在風向上處理多個字母嗎?例如「NW」? – CodeJockey

+0

我建議你檢查使用csv和類似工具時非常有用的熊貓圖書館 – Donbeo

回答

0

你並不真的需要拆分它。 你可以只是做

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

索引打印的第一個字符[0]行的字符串[1]

0

csv文件中的分隔符是什麼? 無論如何,我認爲

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

會做的伎倆。

例如,

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

你的代碼是正確的。

請嘗試添加一些ARGS csv.reader(csvfile_wind, dialect='excel-tab', delimiter=';')

您還可以打印的行也是如此。 如果行已splited你可以看到類似[20,「一些字符串」]

而且你不需要括號:


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