如何在 Python 的文件中更仔细地搜索?

How To Search More Carefully In Files With Python?

我从用户那里得到一个文件名并为 him/her 上传文件,我的问题是由于我的代码,用户应该输入文件名才能上传,但我想更仔细地搜索并上传名称与用户输入的名称相似的所有文件,我如何编写它而不是此代码?

示例:当用户键入 Biology 时,程序应上传 Campbell Biology、My Biology 或 ...

我需要 SQL 中的 LIKE 语句 ...

try:
    requested_file = open(str(args[0]) + '.pdf', 'rb')

您似乎想要获取包含用户输入的特定搜索字符串的所有文件。有两种选择,第二种比第一种更彻底。

选项 1
您可以使用 glob.glob 函数,传递通配符:

import glob

search = ... # your term here
for files in glob.glob('*%s*.pdf' % search):
    ... # do something with file

选项 2
re.search + os.listdir。您可以遍历当前目录并使用正则表达式进行过滤。

import os
import re

pattern = re.compile('.*%s.*\.pdf' %search, re.I)
for files in filter(pattern.search, os.listdir('.')):
    ... # do something with files

第二个选项为您提供了更多的灵活性。 glob 受通配符语法限制。