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

时间:2017-07-24 20:12:51

标签: python python-3.x python-3.5 python-3.6

我从用户那里得到一个文件名&为他/她上传文件,我的问题是,由于我的代码,用户应输入文件名上传它,但我想更仔细地搜索和上传所有文件,其名称与用户输入的名称相同,如何编写而不是此代码?

示例:当用户输入Biology时,程序应该上传类似Campbell Biology,My Biology Or ...的文件。

我在SQL中需要一些LIKE语句......

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

1 个答案:

答案 0 :(得分:1)

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

选项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受通配符语法的限制。