2015-10-19 44 views
0

我有一個.csv文件,其中包含5列中的數據。第五列是日期爲一個編號的星期。我想根據當前的星期編號在桌面上的對象中打印其他4列數據。例如,第01周的第1列中有1個,第2列中的第2個,第3列中的第3個和第4列中的第4個。我想按順序在對象中打印1,2,3,4。一旦第01周結束,我希望它改變爲第02周的數據。第1列中的數據現在是5,第2列現在是6等。我一直在試圖找到一個if語句,它可以工作,但沒有任何我找到了作品。Python語句根據星期編號打印.csv中的特定行

我是新的python與一些背景編碼。我無法弄清楚適當的if語句還是有更好的函數可供使用?謝謝。

這是我到目前爲止:

from datetime import date 

import wx 
app = wx.App() 
frame = wx.Frame(None, -1, 'win.py') 
frame.Show() 
app.MainLoop() 

import csv 

import time 
#---------------------------------------------------------------------- 
def csv_dict_reader(file_obj): 
""" 
Read a csv.DictReader 
""" 
    reader = csv.DictReader(file_obj, delimiter=',') 
    for column in reader: 
     if(column["Date"])==(time.strftime("%U")): 
      print(column["Column 1"]) 
      print(column["Column 2"]) 
      print(column["Column 3"]) 
      print(column["Column 4"]) 


#---------------------------------------------------------------------- 
if __name__ == "__main__": 
    with open("data.csv") as f_obj: 
     csv_dict_reader(f_obj) 

我的.csv的樣品是:

Column 1  Column 2 Column 3 Column 4 Date 
    1   2   3   4   1 
    5   6   7   8   2 
    9   10   11   12   3 

輸出我想要的是: 如果每週1打印:

1 
2 
3 
4 

如果第2周打印:

5 
6 
7 
8 

我希望將它們打印在位於桌面上的盒子中。當週變化時,我希望它自動更改爲下週的數據。

謝謝。

sdruch

+0

歡迎StackOverflow上。請澄清您的問題,特別是根據http://stackoverflow.com/help/mcve上的發佈準則。除其他外,請顯示輸入文件中的示例數據和所需輸出的樣本。除此之外,您期望的結果令人困惑:「print」是將數據發送到輸出通道的命令; 「對象」是您設計的內部數據結構。 此外,您聲明要按降序打印,但已描述升序。 – Prune

+0

請你可以編輯你的問題(按'編輯'按鈕)添加你的輸入的一個小樣本,以及你的預期輸出應該是什麼。 –

+0

我已經添加了一個示例和一個預期的輸出。謝謝。 – sdruch

回答

0

了很多變化,找我得到的東西,將工作,直到下週後。我將不得不看看我能否找到一個刷新腳本或其他東西。我發佈了我工作的最終代碼。如果有人知道更簡單的方法來完成這項工作,請讓我知道。

import csv 
import time 
from Tkinter import * 

root = Tk() 
var0 = StringVar() 
var1 = StringVar() 
var2 = StringVar() 
var3 = StringVar() 

label0 = Label(root, textvariable=var0, relief=RAISED) 
label1 = Label(root, textvariable=var1, relief=RAISED) 
label2 = Label(root, textvariable=var2, relief=RAISED) 
label3 = Label(root, textvariable=var3, relief=RAISED) 

#---------------------------------------------------------------------- 
def csv_dict_reader(file_obj): 

reader = csv.DictReader(file_obj, delimiter=',') 
for column in reader: 
if(column["Week"])==(time.strftime("%U")): 
    var0.set(column["Column1"]) 
    var1.set(column["Column2"]) 
    var2.set(column["Column3"]) 
    var3.set(column["Column4"]) 

#---------------------------------------------------------------------- 
if __name__ == "__main__": 
    with open("Data.csv") as f_obj: 
     csv_dict_reader(f_obj) 

label0.pack() 
label1.pack() 
label2.pack() 
label3.pack() 
root.mainloop() 

這是工作給我的數據,我想從.csv文件顯示。就像我說過的,我需要看看是否有刷新或什麼東西會在新的一週發生時自動改變。

謝謝

sdruch