python - 在文件中搜索列表中的单词

标签 python python-2.7

我正在尝试在文件中搜索单词。这些词存储在单独的列表中。 找到的单词存储在另一个列表中,最后返回该列表。

代码如下:

def scanEducation(file):
    education = []
    qualities = ["python", "java", "sql", "mysql", "sqlite", "c#", "c++", "c", "javascript", "pascal",
             "html", "css", "jquery", "linux", "windows"]
    with open("C:\Users\Vadim\Desktop\Python\New_cvs\\" + file, 'r') as file1:
    for line in file1:
        for word in line.split():
            matching = [s for s in qualities if word.lower() in s]
            if matching is not None:
                education.append(matching)
return education

首先,它返回一个列表,其中包含一堆空“座位”,这意味着我的比较不起作用?

结果(扫描4个文件):

"C:\Program Files (x86)\Python2\python.exe" C:/Users/Vadim/PycharmProjects/TestFiles/ReadTXT.py
[[], [], [], [], [], [], [], [], [], ['java', 'javascript']]
[[], [], [], [], [], [], [], [], [], ['pascal']]
[[], [], [], [], [], [], [], [], [], ['linux']]
[[], [], [], [], [], [], [], [], [], [], ['c#']]

Process finished with exit code 0

输入文件包含:

Name: Some Name
Phone: 1234567890
email: some@email.com
python,excel,linux

第二期每个文件包含3个不同的技能,但是函数只找到1个或2个。这也是一个不好的比较还是我这里有不同的错误?

我希望结果是一个只包含找到的技能的列表,没有空白的地方,并且可以找到文件中的所有技能,而不仅仅是其中的一些技能。

编辑:当我执行 word.split(', ') 时,函数确实找到了所有技能 但如果我希望它更通用,如果我不知道究竟是什么将它们分开,那么找到这些技能的好方法是什么?

最佳答案

您得到空列表是因为 None 不等于空列表。您可能需要将条件更改为以下内容:

if matching:
    # do your stuff

您似乎正在检查质量列表中的字符串中是否存在子字符串。这可能不是你想要的。如果您想检查出现在质量列表中的一行中的单词,您可能需要将您的列表理解更改为:

words = line.split()
match = [word for word in words if word.lower() in qualities]

如果您要同时匹配 和空格,您可能需要查看正则表达式。参见 Split Strings with Multiple Delimiters? .

关于python - 在文件中搜索列表中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39684483/

相关文章:

python - 如何展平 Pandas 数据框以保留索引和列名

python - Pandas - df.fillna(df.mean()) 不适用于多索引 DataFrame

python - 类 python 的实例的 getattr 查找失败

python - 解决 "Number of subsets without consecutive numbers"时出现OverFlowError

python - 如何使用 XML 输出运行 Python 单元测试

python - 如何使用 google-api-python-client 设置 BigQuery 配置属性?

python - 从原始文件外部的类导入函数

python - 基本列表操作

python - 在多进程模式下运行 Nose 测试时,导入未得到正确处理

python - 在 Python 中加速一对多相关性计算