簡體   English   中英

如何打開最接近指定python文件的文件

[英]how to open a file closest to the file specified python

我使用的是python,並且我想用它來運行一個程序,它將打開用戶指定的文件。 但是問題在於,如果用戶未指定確切的文件名,那么它將給出錯誤。 如果用戶要打開“ 99999-file-name.mp3”,並且鍵入了“ filename.mp3”,那么程序如何打開最接近指定文件的文件?

首先獲取特定文件夾中的文件列表

然后像這樣使用difflib.get_close_matches

difflib.get_close_matches(user_specified_file, list_of_files)

尋找“好的”比賽。

注意:請考慮提供一個小的cutoff@tobias_k所建議的0.1,以確保您始終都能獲得匹配,因為默認截止值0.6意味着有時對於用戶輸入的內容而言,沒有什么是“好的匹配”。

同樣,如果只需要獲取一個文件名,則還要傳入可選參數n=1以獲得最接近的匹配項,因為如果不指定它,則將獲得3個最佳匹配項。

要回答這個問題,您需要首先定義“最近”,因為在計算中這可能意味着非常不同的事情。 如果要比較字符串並找到最相似的字符串,那么一種好的方法是檢查編輯距離。 那里有Python庫,例如https://pypi.python.org/pypi/editdistance
您給它兩個字符串,它告訴您必須更改一個字符串才能得到另一個字符串。 根據文檔:

>>> import editdistance
>>> editdistance.eval('banana', 'bahama')
2L

PS。 不禁要提到,我認為這是一個壞主意。 如果您想打開文件,然后程序開始打開隨機文件,那么您要么將要覆蓋一個本不應該被覆蓋的文件,要么嘗試處理無法在您的文件中處理的文件預期的方式。 我建議使用一個文件選擇框,例如,您可以輕松地將其與tKinter一起使用(即使tKinter是癌症)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM