2017-07-24 45 views
3

我從用戶&上傳文件給他/她,我的問題是,由於我的代碼,用戶應該輸入文件名來上傳它,但我想更仔細地搜索&上傳所有文件他們的名字就像用戶輸入的名字,我如何寫它而不是這個代碼?如何在Python中更仔細地搜索文件?

例如:當用戶類型生物學的PROGRAMM應上傳就像坎貝爾生物學文件,我的生物還是...

我需要這樣的東西在SQL語句...

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

我想用方案用戶可能最終上傳大量他們不想上傳的私人文件。 – ForceBru

+0

@ForceBru程序搜索文件併發送給他們不是用戶... –

+3

你可以使用正則表達式或glob與通配符。 –

回答

2

它似乎你想要獲得包含用戶輸入的特定搜索字符串的所有文件。有兩種選擇,第二種比第一種更徹底。

選項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受限於通配符語法。

+1

謝謝我的朋友... –

+0

@AliBahaari你也可以upvote對你有幫助的答案。乾杯。 –