2011-10-21 57 views
0

我是Python的初學者,並且有一個我讀過的文件,它有一個Market_ID字段。在循環遍歷這個文件(列表)時,我需要在第二個文件(Market_ID,Market_Name)中訪問Market_name。根據Python中第一個列表的ID從第二個列表中獲取值

什麼是我最好的開始?如果有必要,我可以詳細說明該程序正在做什麼。

的文件(列表)佈局如下:

File1: Cust_ID, Market_ID, Cust_Name, IsNew 
File2: Market_ID, Market_Name 

我主循環結束文件1。我需要能夠從File2訪問Market_Name,以便能夠將它放在我從File1中的數據創建的新文件中。希望有所幫助。

+1

如何顯示您的數據的一些例子嗎? – JBernardo

回答

1

如果文件不是太大(幾兆字節),您可以使用Market_ID作爲關鍵字將每個項目存儲在dict()中。

這看起來像數據庫中的數據 - 如果您熟悉 關係數據庫及其用法,則可以將每個文件插入到 單獨的表中,然後執行查詢。 Python在其標準庫中有一個到 sqlite的接口。

爲了快速解決這個問題,我建議儘量使用字典。 BY - sleeplessnerd

More about dictionariesMore about sqlite

file2 = open("/path/to/file2", "r") 
market_names = {} 
for line in file2: 
    fields = line.split(",") 
    market_names[int(fields[0])] = fields[1] 
file2.close() 

file1 = open("/path/to/file1", "r") 
for line in file1: 
    fields = line.split(",") 
    market_name = market_names[int(fields[1])] 
    # do what ever you want with the Market_Name associated with 
    # the Market_ID contained in this line 
file1.close() 
+0

通過一些小的調整,現在可以工作。感謝@Nicoretti和其他人的投入。 –

0

嗯,請你提供更多的細節?

當你說文件(列表)時,你的意思是你創建了一個列表,其中包含你從第一個文件中需要的所有數據?第二個文件呢?

如果它們都列出的不是像這樣的工作:

for market_id in flie1_list: 
    for pair in file2_list: 
     if pair[0] == market_id: 
      market_name = pair[1] 
      break 
    <keep doing whatever it is you need to do in first loop> 

注 - 我還算是初學者,以及,這是我在這個網站的第一個答案。去容易;)

1

如果文件不是太大(幾兆字節),你可以使用Market_ID作爲關鍵字將每個項目存儲在一個dict()中。

這看起來像數據庫中的數據 - 如果您熟悉關係數據庫及其用法,則可以將每個文件插入到單獨的表中,然後執行查詢。 Python在其標準庫中有一個到sqlite的接口。

爲了快速解決這個問題,我建議儘量使用字典。

0

我沒有注意到我的python,但從概念上講,你可能想要做的是先讀取第二個文件到dictionary,然後查看字典中的id以獲取關聯的名稱。或者,如果ID是數字或密度更大或更小,則可以將它們讀入常規數組中。

相關問題