1

我设置了一个脚本,在给定目录中搜​​索包含“cover”、“resume”和“references”的 pdf 文件,将它们插入到列表中,然后合并它们。搜索词看起来像这样,其中键是搜索词,值是应该插入到列表中的索引:

searchTerms = {"cover": 0,
    "resume":1,
    "references":2}

初始列表如下所示:

pdfsToBeMerged = ["placeholder", "placeholder", "placeholder"]

在我搜索文件并将它们附加到此列表后,我遍历列表并删除所有“占位符”项目。然后合并这些文件。

我想知道是否有一个 Python 函数可以以某种方式自动化这个“占位符”步骤?就像一个函数,它将插入一个 searchTerm 并将其附加到其索引处的空白列表并保留在那里。例如,如果首先找到“引用”文件,它将被附加到索引 2 并且无论是否找到其他文件都将保留在那里?

4

2 回答 2

1

制作列表列表:

pdfsToBeMerged = [[], [], []]

然后你可以append到正确的列表。

for term in searchTerms.keys()
    if term in filetext:
        pdfsToBeMerged[searchTerms[term]].append(filename)
于 2013-03-31T15:24:13.110 回答
0

这并不是您真正想要的解决方案,但包含占位符可能不是什么大问题。

一种更清洁的方法如下:

# Initialize with None instead of "placeholder"
pdfs_to_be_merged = [None] * 3

# Insertion as usual
pdfs_to_be_merged[index] = pdf

# Get the cleaned list
[pdf for pdf in pdfs_to_be_merged if pdf is not None]
于 2013-03-31T14:28:35.767 回答