[英]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.