我是Python的初学者,有一个我读过的文件有一个Market_ID字段。循环遍历此文件(列表)时,我需要在第二个文件(Market_ID,Market_Name)中访问Market_name。
我开始的最佳位置是什么?如果有必要,我可以详细说明该计划正在做什么。
文件(列表)的布局如下:
File1: Cust_ID, Market_ID, Cust_Name, IsNew
File2: Market_ID, Market_Name
我的主循环在File1上。我需要能够从File2访问Market_Name,以便能够将它放在我正在从File1中的数据创建的新文件中。希望有所帮助。
答案 0 :(得分:1)
如果文件不是太大(几兆字节),您可以使用Market_ID作为密钥将每个项目存储在dict()中。
这看起来像是数据库中的数据 - 如果您熟悉关系数据库及其使用,则可以将每个文件插入单独的表中,然后执行查询。 Python在其标准库中有一个sqlite接口。
为了快速解决这个问题,我建议使用dicts。
答案 1 :(得分:1)
如果文件不是太大(几兆字节),您可以使用Market_ID作为密钥将每个项目存储在dict()中。
如果您熟悉数据,这看起来像数据库 关系数据库及其使用,您可以将每个文件插入到 单独的表,然后执行查询。 Python有一个接口 sqlite在其标准库中。
为了快速解决这个问题,我建议使用dicts。 BY - sleeplessnerd
More about dictionaries, More 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()
答案 2 :(得分: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>
注意 - 我也是初学者,这是我在这个网站上的第一个答案。轻松一下;)
答案 3 :(得分:0)
我没有使用我的python,但从概念上讲,您可能想要做的是先将第二个文件读入dictionary
,然后在字典中查找id以获取相关名称。或者,如果id是数字且密度或多或少,则可以将它们读入常规数组。