나는 파이썬을 사용하고 있으며, 사용자가 지정한 파일을 열려면 프로그램을 실행해야합니다. 그러나 문제는 사용자가 정확한 파일 이름을 지정하지 않으면 오류가 발생한다는 것입니다. 사용자가 "99999-file-name.mp3" 을 열고 "filename.mp3"을 입력 한 경우, 프로그램이 가장 가까운 파일을 어떻게 열 수 있습니까?지정된 파일에 가장 가까운 파일을 여는 방법
답변
이 질문에 대답하려면 먼저 "가장 가까운"컴퓨팅을 정의해야합니다. 이는 컴퓨팅에서 매우 다른 것을 의미하기 때문입니다. 문자열을 비교하고 가장 비슷한 것을 찾으려면 편집 거리를 확인하는 것이 좋습니다. 거기에 파이썬 라이브러리가 있습니다 (예 : https://pypi.python.org/pypi/editdistance).
두 개의 문자열을 지정하면 한 문자열을 다른 문자열로 변경해야하는 정도가 표시됩니다. 설명서 별 :
>>> import editdistance
>>> editdistance.eval('banana', 'bahama')
2L
PS. 도울 수는 없지만 이것이 나쁜 생각이라고 생각한다고 언급합니다. 파일을 열었을 때 sth를하고 프로그램에서 임의의 파일을 열면 덮어 쓸 파일이 아닌 파일을 덮어 쓰거나 파일에서 처리 할 수없는 파일을 처리하려고합니다. 의도 된 방식으로. 예를 들어 tKinter에서 쉽게 사용할 수있는 파일 선택 상자를 사용하는 것이 좋습니다 (tKinter는 암이지만).
먼저 다음과 같이 difflib.get_close_matches를 사용하는 특정 폴더
에있는 파일의 목록을 얻을 :
difflib.get_close_matches(user_specified_file, list_of_files)
는 "좋은"일치하는 항목을 찾을 수 있습니다.
NB : 퍼팅을 고려 때로는 아무것도 어떤 사용자에 대한 "좋은 경기"수 없습니다 당신은 0.6 수단의 기본 차단으로 항상 일치를 얻을 할 수 있도록 @tobias_k에 의해 제안 0.1 즉, 작은 cutoff
을 제공 입력되었습니다.
마찬가지로 파일 이름을 하나만 가져와야하는 경우 가장 근접한 일치 항목을 얻으려면 n=1
옵션 매개 변수를 전달하십시오. 지정하지 않으면 가장 적합한 3 개의 일치 항목을 얻을 수 있습니다.
아마도 'cutoff = somesmallnumber'를 전달하여 _any_ 일치를 얻는 것이 유용 할 수도 있습니다. 일치하지 않는 대신 매우 유사하지는 않습니다. –
- 1. 두 파일을 여는 가장 좋은 방법
- 2. prependTo 가장 가까운 지정된 iframe의 부모 div
- 3. 가장 가까운 지정된 정수 집합으로 반올림
- 4. Windows에서 파일을 여는 가장 기본적인 방법
- 5. Matlab에서 지정된 인덱스에 가장 가까운 인덱스를 찾는 방법
- 6. iframe에서 파일을 여는 방법
- 7. Excel VBA : 가장 최근의 Excel 파일을 여는 방법
- 8. 코르도바에있는 파일을 여는 방법
- 9. 정수 테이블에서 지정된 정수에 가장 가까운 정수를 찾는 방법은 무엇입니까?
- 10. 가장 가까운 가장 가까운 이웃 검색
- 11. GeoIP 가장 가까운 국가 (가장 가까운 국가)
- 12. 가장 가까운 요소를 얻는 가장 좋은 방법
- 13. 가장 가까운 대상을 찾는 가장 빠른 방법
- 14. Windows에서 지정된 항목이있는 폴더를 여는 방법
- 15. 네번째 가장 가까운 반올림하는 방법
- 16. 가장 가까운 div를 얻는 방법?
- 17. 가장 가까운 장소를 얻는 방법?
- 18. 가장 가까운 위치를 얻는 방법
- 19. 가까운 가장 가까운 다음 시간
- 20. 파이썬으로 텍스트 파일을 여는 방법?
- 21. MemoryStream에서 zip 파일을 여는 방법
- 22. 구형과 가장 가까운 점
- 23. .hprof 파일을 여는 방법
- 24. VMDK 파일을 여는 방법
- 25. Pycharm에서 파일을 여는 방법
- 26. .jl 파일을 여는 방법
- 27. .SQLite 파일을 여는 방법
- 28. .apk 파일을 여는 방법
- 29. C에서 파일을 여는 방법
- 30. .a 파일을 여는 방법
"가장 가까운"을 어떻게 정의합니까? 해석 될 수있는 여러 가지 방법이 있습니다. 예에서는 주어진 이름이 정확히 들어있는 이름을 고려합니다. 오타가있는 이름은 무엇입니까? – GPhilo
이것은 잘못된 X-Y 해결책 인 것처럼 보입니다. 사용자가 항상 올바른 파일이나 일치 할 수있는 특정 패턴을 입력하는지 확인하지 않으시겠습니까? –