我正在使用python和我的魔杖运行一个程序,将打开用户指定的文件。但问题是,如果用户没有指定确切的文件名,那么它会给出错误。如果用户想要打开“99999-file-name.mp3” 并且他已经键入“filename.mp3”,那么程序如何打开最接近指定文件的文件?如何打开最接近指定文件的文件python
0
A
回答
2
要回答这个问题,您需要先定义“最接近”,因为在计算时这可能意味着非常不同的事情。如果你想比较字符串并找到最相似的,那么一个好办法就是检查编辑距离。这里有Python库,即https://pypi.python.org/pypi/editdistance。
你给它两个字符串,它告诉你你必须改变一个字符串来获得另一个字符串。根据文件:
>>> import editdistance
>>> editdistance.eval('banana', 'bahama')
2L
PS。不能不提,我认为这是一个坏主意。如果您想打开打开的文件并且程序开始打开随机文件,那么要么您最终要覆盖一个不会被覆盖的文件,要么尝试处理无法在您的文件中处理的文件打算的方式。我会推荐使用一个文件选择框,例如你可以很容易地使用tKinter(即使tKinter是癌症)。
3
首先得到一个文件列表中特定文件夹
然后使用difflib.get_close_matches像这样:
difflib.get_close_matches(user_specified_file, list_of_files)
找到“好”的比赛。
NB:考虑把一个提供小cutoff
即0.1通过@tobias_k的建议,以确保你做你得到一个比赛总是为0.6方式默认截止有时什么也没有将是一个“门当户对”的用户什么进入。
同样,如果您只需要获取一个文件名,还可以传入可选参数n=1
以获得最接近的匹配,因为如果您不指定它,您将获得3个最佳匹配。
+0
也许通过'cutoff = somesmallnumber'来获得_any_匹配也是有用的,即使它不是非常相似,而不是完全不匹配。 –
相关问题
- 1. AppleScript打开“打开最近”文件
- 2. 添加到“打开最近的文件”
- 3. 在emacs中打开最近的文件
- 4. 在tcsh中打开最近的文件
- 5. 如何打开最近添加到Swing菜单中的文件?
- 6. Excel VBA:如何打开最近的excel文件
- 7. VBA:如何在文件夹中打开最近的两个excel文件
- 8. python打开最新的excel文件
- 9. 如何使用命令提示符bat文件打开最近修改或最近创建的文件
- 10. 如何使打开最近DO-文件列出更长
- 11. ConfigurationManager.OpenExeConfiguration - 指定要打开的文件
- 12. org.apache.poi.openxml4j.exceptions.InvalidOperationException:无法打开指定的文件:
- 13. org.apache.poi.openxml4j.exceptions.InvalidOperationException:无法打开指定的文件
- 14. 如何在python上打开特定的文本文件?
- 15. 如何接近-hd文件
- 16. 如何直接在python中打开文本文件?
- 17. 指定如何使用PHP打开特定的文件类型
- 18. 如何打开文件中的文件?
- 19. 在Qt中打开指定文件夹
- 20. 打开文件用户指定
- 21. 如何在打开新文件时打开文件(打开文件)?
- 22. 文件打开指针
- 23. 使用AppleScript的打开文件指定文件夹下
- 24. python&pyparsing newb:如何打开文件
- 25. 如何jupyter打开文件与Python 2.7
- 26. 如何用python打开3ds文件
- 27. 如何在python中打开.MSG文件
- 28. 如何在Python中打开Excel文件?
- 29. 如何使用python打开json文件?
- 30. 如何在python中打开文件?
你如何定义“最接近”?有很多可以解释的方法。你的例子认为一个名字完全包含给定的名字。怎么样与错别字的名字? – GPhilo
这似乎是一个糟糕的X-Y解决方法,为什么不确保用户总是输入正确的文件或可以匹配的特定模式? –