파이썬으로 원하는 파일 검색하기(다중 입력 검색조건..)
글쓴이: 익명 사용자 / 작성시간: 화, 2017/02/14 - 4:39오후
안녕하세요.
코드를 짜다가 제 머리의 한계에 통탄하고 부득이 질문을 드리게 됬습니다.
간단히 말씀드리자면, 저희 회사 내부에 파일서버가 있는데(인증 관련 업무)
업무 특성 상 굉장히 많은 파일이 있습니다.
그래서 검색 코드를 짜는데 애를 먹고 있습니다.
제가 원하는 기능은
사용자에게 입력을 받을 때 가변적(개수)으로 받을 수 있는 방법이 있는지
그리고 검색 옵션을 1개가 아닌 그 이상으로 붙여 줄 수 있는지 입니다.
예를 들어 제가 찾고자하는 키워드가 "네덜란드", "원통형" , "전도체"
이 세가지의 문자열을 만족하는 파일의 경로를 출력 시켜 주려고 합니다.
이때, 제가 원하는 검색 옵션은 저런 문자열을 1개던 5개던 가변적으로 입력 변수로 줄 수 있는 것 입니다.
결과적으로 말씀드리면
제가 특정 키워드들(복수)를 입력값으로 주고 그 키워드값을 모두 만족하는
파일을 찾아 경로를 알려주는 코드를 짜고 싶습니다.
고수님들의 조언을 부탁드립니다. 온라인으로 주먹구구 배우니 정말 어렵네요 ㅠㅠ..
제가 짜던 코드입니다.
# finder import os selected_dir = "d:/" goal = input("type what you want to search for: ") input_list = goal.split() input_list = [str(a) for a in input_list] print (input_list) for root, dirs, files in os.walk(selected_dir): for name in files: for search_word in goal: if goal in name: print (os.path.join(root, name)) break
Forums:
음 ..
질문 내용을 보고.. 그냥 임의의 단어들을 모두 포함하는 문자열을 검색할 수 있는지 궁금해서 찾아 봤는데..
regex 에 positive lookahead 라는게 있더군요.
http://www.regular-expressions.info/lookaround.html
파이썬이 아니라 도움은 안 되겠지만.. 그냥 참고 삼아 올려봅니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
거의 다 하신것 같은데요..for search
거의 다 하신것 같은데요..
에서 goal 대신에 input_list를 쓰면 일단 돌아가야할 듯합니다만..
아.. 입력은 "네덜란드 원통형 전도체" 처럼
아.. 입력은 "네덜란드 원통형 전도체" 처럼 공백으로 분리하고
" " 로 전체를 묶어야합니다.
"키워드값을 모두 만족하는" 은 일단 원래 코드
"키워드값을 모두 만족하는" 은 일단 원래 코드 상으로는
"네덜란드" "원통형" "전도체" 중 하나라도 들어가 있으면 출력하는 코드입니다.
전부 들어가야하는 코드라면 좀 바꿔야합니다. 이것이 질문의 요지는 아닌듯 합니다만..
일단 하나라도 들어가면 출력하는 코드는
로 바꿀 수 있고, 전부 들어가야지만 출력하는 코드는 아래와 같이 할 수 있습니다.
힌트만 살짝 남겨드릴게요
1. sys.argv
2. *args
찾아보시면 반드시 도움이 되실겁니다.
이민철 올림
댓글 달기