2014-03-29 36 views
0

我試圖創建一個程序,從.csv文件中讀取有關電影時間的信息,其中用戶可以按顯示的月份搜索電影時間,生成電影和電影的名字。從文件中獲取和讀取數據的錯誤

該文件的格式如下:

Movie name, date , cinema, post code of cinema, company producing, cost

對於每一行。

我需要搜索的唯一信息是日期,公司製作和電影名稱。

我對這段代碼的第一個問題是,當我搜索公司的電影時,只顯示公司在該文件中的第一部電影,並且我想顯示它們全部。

我的第二個問題是我需要按月搜索電影,但日期格式爲dd/mm/yy,我不確定如何僅搜索月份而忽略日期和年份。

如果任何人有解決這些問題的任何一個,我將非常感謝它,並提前感謝。

+0

你能粘貼您的輸入文件的一部分,作爲一個例子? – BartoszKP

+0

第一個是Frozen,2014年3月4日,IMAX,LN3 6SD,迪士尼,£5.49 – Illian

+0

這條線看起來不錯,不過要注意其他線條的額外空間。如果你看到一些,你可以用'strip'方法在你的代碼中處理它們。 – BartoszKP

回答

1

因爲這似乎是你的代碼是正確的你的第一個問題,我已經測試了它,它確實打印列表,這些對公司的匹配:

>>> company = "one" 
>>> moviedata = [("one","two"), ("two","one"), ("two","three")] 
>>> print([s for s in moviedata if (company) in s]) 
[('one', 'two'), ('two', 'one')] 

我只能建議打印並檢查您的moviedata是否存儲在元組列表中。

對於第二個問題,剛纔切,你必須找回月份的數據:

>>> "03/04/2014"[3:5] 
'04' 

例如爲您的代碼:

>>> moviedata = [("one","two"), ("two","one"), ("two","three")] 
>>> moviedata[1] 
('two', 'one') 
>>> moviedata[1][1] 
'one' 
>>> moviedata[1][1][:2] 
'on' 
+0

現在我通過打印得到了不止一個結果,雖然我以前沒有。我不確定它是如何工作的,但感謝您幫助解決這個問題。 – Illian

+0

對於你的第二個問題,只需切分日期以獲取月份,在我的評論中編輯代碼部分。 – Granitas

+0

我已經嘗試過,但問題是每行都被讀爲一個元素,所以moviedata [0:3]返回文件的前三行。 – Illian