2011-10-21 56 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是数字或密度更大或更小,则可以将它们读入常规数组中。

相关问题