繁体   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