2013-11-21 72 views
1

因此,在Python 3.3.2中的程序工作。新的一切,但我一直在通過它。我有一個應用程序,我會做5個輸入。其中3個輸入是組合框,其中兩個是輸入窗口小部件。然後我創建了一個按鈕事件,將這5個輸入保存到一個文本文件和一個csv文件中。打開每個文件一切看起來是正確例如保存的信息是這樣的:csv行和列取

Brad M.,Mike K.,Danny,Iconnoshper,Strong Wolf Lodge 

我再接着一個CSV演示和複製此...

import csv 

ifile = open('myTestfile.csv', "r") 
reader = csv.reader(ifile) 

rownum = 0 
for row in reader: 
# Save header row. 
    if rownum == 0: 
     header = row 
    else: 
     colnum = 0 
     for col in row: 
      print('%-15s: %s' % (header[colnum], col)) 
      colnum += 1 

    rownum += 1 

ifile.close() 

和最終印刷精美如:

rTech: Brad M. 
pTech: Mike K. 
cTech: Danny 
proNam: ohhh 
jobNam: Yeah 
rTech: Damien 
pTech: Aaron 

如此等等。我試圖搞清楚的是,如果我通過

if rownum == 0: 
     header = row 

是有辦法拉特定行/列組合並打印什麼是在那裏舉行命名我的頭?

我已經想通了,我可以後的程序運行做

print(col) 

print(col[0:10] 

,我能夠打印打印的最後關口,或從上次印刷山坳的字母。但是我不能比最後一次印刷更遠。

我的最終目標是能夠分配變量,這樣我就可以在另一個程序中獲得一個標籤,從csv文件中獲取它的信息。

rTech for job is??? 
look in Jobs csv at row 1, column 1, and return value for rTech 

我需要創建一個加載了信息的字典然後調用字典嗎?感謝您的指導


感謝您的指導。所以一直在嘗試一些不同的東西其中之一Im真正喜歡的是以下...

import csv 

labels = ['rTech', 'pTech', 'cTech', 'productionName', 'jobName'] 
fn = 'my file.csv' 

cameraTech = 'Danny' 
f = open(fn, 'r') 

reader = csv.DictReader(f, labels) 

jobInformation = [(item["productionName"], 
       item["jobName"], 
       item["pTech"], 
       item["rTech"]) for item in reader if \ 
       item['cTech'] == cameraTech] 

f.close() 

print ("Camera Tech: %s\n" % (cameraTech)) 
print ("\n".join(["Production Name: %s \nJob Name: %s \nPrep Tech: %s \nRental Agent:  %s\n" % (item) for item in jobInformation])) 

這表明我,我可以通過cameraTech創建一個變量,只要匹配什麼裝入讀者持有csv文件,並且如果cTech專欄與cameraTech匹配,則會填寫正確的信息。 95%有WOOOOOO ..

所以現在我很好奇的是調用每個項目。該計劃是在一個窗口中,我有一個列表框,填充了來自帶有「productionName」和「jobName」的.txt文件中的項目。當我點擊列表框中的其中一個項目時,會打開一個新窗口,然後將.csv文件中的匹配信息填充到相應的標籤中。

想法?再次感謝:)

回答

0

我認爲將CSV文件讀取到字典中可能是您​​的問題的工作解決方案。

Python的CSV包已經內置支持讀取CSV文件導入使用DictReader Python字典,看看文檔在這裏:http://docs.python.org/2/library/csv.html#csv.DictReader

下面是使用DictReader的(未經測試)例如,讀取CSV文件轉換成一個Python字典和打印第一行的內容:

import csv 
csv_data = csv.DictReader(open("myTestfile.csv")) 

print(csv_data[0]) 
+0

感謝您的HAL。我已經編輯了我的原始文章,並提供了有關我的企業的最新信息,以及我從那裏可以做的事情以及目標的去向。 –

+0

我不太清楚你的目標是什麼,但是也許最好將從CSV文件中讀取的整個字典保存在內存中,並在用戶選擇列表框中的項目時在該字典中進行查找。 – HAL

+0

所以這個想法... 我有一個程序,我運行,我輸入明天的工作信息,持有「生產名稱,工作名稱,準備技術,租賃代理,相機技術和齒輪」 然後相機技術每天早上加載一個不同的程序,登錄並能夠查看與生產名稱和工作名稱列出的工作信息相關的信息,然後他們可以通過選擇他們希望看到的工作來獲取更多詳細信息有關的信息。 –

0

好了,所以我能看到以下(https://gist.github.com/zstumgoren/911615

那之後把這個共同的sh欠我如何給每個標題一個我可以調用的變量。然後,我可以創建一個函數,允許調用和比較某些變量,如果匹配,我將能夠看到所需的某些數據。因此,例如我做了展示自己這是可以做到如下:

import csv 

source_file = open('jobList.csv', 'r') 

for line in csv.DictReader(source_file, delimiter=','): 
    pTech= line['pTech'] 
    cTech= line['cTech'] 
    rAgent= line['rTech'] 
    prodName= line['productionName'] 
    jobName= line['jobName'] 

    if prodName == 'another': 
     print(pTech, cTech, rAgent, jobName) 

但是我只是發現了一些,而我的.csv文件有一行這樣的偉大工程!!!!但是,創建我自己的.csv文件,我只能打印最後一行讀取的信息。 Grrrrr ....越來越近......我仍在尋找,但如果有人瞭解我的問題,會喜歡一些光。