从搜索匹配返回列表中的索引

时间:2016-08-10 16:56:21

标签: python

我正在使用名称列表(cust_name)来查找列表中是否存在位于文件夹中的任何电子邮件文件中的任何名称。然后,我想获取搜索命中的名称,并创建一个名为cust_id的文件夹作为文件夹名称,并将电子邮件文件复制到新文件夹中。我的搜索工作正常,但我无法弄清楚如何知道搜索在cust_name中搜索的索引,因此我可以使用cust_id中的相同索引位置来命名新文件夹。这是代码:

for root,dirs,file in os.walk(os.getcwd()):
    for cur_file in file:
        with open(cur_file, "r") as f:
            content = f.readlines()
                for line in content:
                    line = line.lower()
                    if any(word in line for word in cust_name):
                     #grab index position with search hit in cust_name
                     #grab same index position with search hit in cust_id
                     #create new folder and copy email file

我已经知道如何创建文件夹并复制文件。我的问题是抓住那个指数位置。

每当我尝试使用 word 来获取索引位置时,我都会收到错误,即单词未定义并且搜索周围没有给出任何其他关于如何获取索引的信息位置。那里的任何人有任何提示或之前已经这样做了吗?

2 个答案:

答案 0 :(得分:2)

你是说这个意思吗?

for index, line in enumerate(content):

答案 1 :(得分:2)

如果您只想要索引,可以使用枚举作为dhdavvie建议。对于您的用例,您还可以先考虑zipping cust_id和cust_name以及数组:

cust_tuples = zip(cust_id, cust_name)

for root, dirs, file in os.walk(os.getcwd()):
    for cur_file in file:
        with open(cur_file, "r") as f:
            content = f.readlines()
            for line in content:
                line = line.lower()
                for cust_id, cust_name in cust_tuples:
                    if cust_name in line:
                        # do things with cust_id
                        break  # if you only want the first hit