我从用户那里得到一个文件名&为他/她上传文件,我的问题是,由于我的代码,用户应输入文件名上传它,但我想更仔细地搜索和上传所有文件,其名称与用户输入的名称相同,如何编写而不是此代码?
示例:当用户输入Biology时,程序应该上传类似Campbell Biology,My Biology Or ...的文件。
我在SQL中需要一些LIKE语句......
try:
requested_file = open(str(args[0]) + '.pdf', 'rb')
答案 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
受通配符语法的限制。