파일명 검색 프로그램을 코딩해보자
작성자 정보
- 삼둡 작성
- 작성일
컨텐츠 정보
- 3,761 조회
- 목록
본문
파이썬으로 컴퓨터 전체에 있는 파일을 대상으로 파일명으로 검색하는 프로그램을 코딩해주세요
ChatGPT
파이썬을 사용하여 컴퓨터 전체에서 파일명으로 검색하는 프로그램을 작성하려면 다음과 같은 단계를 따를 수 있습니다. 이 프로그램은 모든 디렉토리를 순회하며 파일명을 비교하여 검색합니다. 이를 위해 os 모듈을 사용하겠습니다.
pythonCopy code
import os # 검색할 파일명 입력 search_filename = input("검색할 파일명을 입력하세요: ") # 검색된 파일을 저장할 리스트 초기화 search_results = [] # 시작 디렉토리 설정 (루트 디렉토리부터 시작할 수 있습니다.) start_directory = "/" # 루트 디렉토리로 설정 # 디렉토리 순회 함수 def search_files(directory, filename): for root, dirs, files in os.walk(directory): for file in files: if filename in file: file_path = os.path.join(root, file) search_results.append(file_path) # 검색 실행 search_files(start_directory, search_filename) # 검색 결과 출력 if search_results: print(f"'{search_filename}' 파일을 포함하는 다음 파일이 발견되었습니다:") for result in search_results: print(result) else: print(f"'{search_filename}' 파일을 찾을 수 없습니다.")
이 코드는 지정된 디렉토리부터 시작하여 모든 하위 디렉토리를 검색하며 지정된 파일명과 일치하는 파일을 찾습니다. 일치하는 파일의 경로는 search_results 리스트에 저장되고, 검색이 끝난 후에 출력됩니다. 시작 디렉토리를 원하는 디렉토리로 변경하고 검색할 파일명을 입력하면 검색 결과를 확인할 수 있습니다.
참고로, 이 코드는 모든 파일을 검색하므로 검색이 오래 걸릴 수 있고, 특정 디렉토리에서만 검색하도록 수정할 수 있습니다.

import os
# 검색할 파일명 입력
search_filename = input("검색할 파일명을 입력하세요: ")
# 검색된 파일을 저장할 리스트 초기화
search_results = []
# 시작 디렉토리 설정 (루트 디렉토리부터 시작할 수 있습니다.)
start_directory = "/" # 루트 디렉토리로 설정
# 디렉토리 순회 함수
def search_files(directory, filename):
for root, dirs, files in os.walk(directory):
for file in files:
if filename in file:
file_path = os.path.join(root, file)
search_results.append(file_path)
# 검색 실행
search_files(start_directory, search_filename)
# 검색 결과 출력
if search_results:
print(f"'{search_filename}' 파일을 포함하는 다음 파일이 발견되었습니다:")
for result in search_results:
print(result)
else:
print(f"'{search_filename}' 파일을 찾을 수 없습니다.")
위 코드를 윈도우 형태의 실행으로 바꾸어 줄 수 있을까?
ChatGPT
물론, 위의 코드를 윈도우 운영 체제에서 실행할 수 있도록 수정할 수 있습니다. 윈도우에서는 디렉토리 구분 기호로 역슬래시(\)를 사용합니다. 또한, 시작 디렉토리를 변경하여 윈도우 시스템에서 검색을 시작할 수 있도록 해야 합니다. 다음은 수정된 코드입니다:
pythonCopy code
import os # 검색할 파일명 입력 search_filename = input("검색할 파일명을 입력하세요: ") # 검색된 파일을 저장할 리스트 초기화 search_results = [] # 시작 디렉토리 설정 (예: C:\를 시작 디렉토리로 설정) start_directory = "C:\\" # 시작 디렉토리를 윈도우 시스템에 맞게 설정 # 디렉토리 순회 함수 def search_files(directory, filename): for root, dirs, files in os.walk(directory): for file in files: if filename in file: file_path = os.path.join(root, file) search_results.append(file_path) # 검색 실행 search_files(start_directory, search_filename) # 검색 결과 출력 if search_results: print(f"'{search_filename}' 파일을 포함하는 다음 파일이 발견되었습니다:") for result in search_results: print(result) else: print(f"'{search_filename}' 파일을 찾을 수 없습니다.")
이 코드는 윈도우의 시작 디렉토리를 "C:\"로 설정하고, 디렉토리 구분 기호로 역슬래시("")를 사용합니다. 따라서 이제 윈도우 시스템에서 파일명을 검색하는 데 사용할 수 있습니다. 시작 디렉토리를 변경하거나 필요한 경우 검색 파일명을 입력하여 실행하실 수 있습니다.
위 코드를, 터미널이 아닌 gui 환경의 실행코드로 변환해 줄 수 있겠어?
ChatGPT
Python으로 GUI 환경에서 실행 가능한 파일 검색 프로그램을 작성하려면, Tkinter 라이브러리를 사용하여 GUI를 구현할 수 있습니다. 아래는 Tkinter를 사용한 GUI 환경에서 파일 검색 프로그램의 예제 코드입니다.
pythonCopy code
import os import tkinter as tk from tkinter import filedialog from tkinter import messagebox # 파일 검색 함수 def search_files(): search_filename = entry.get() start_directory = filedialog.askdirectory(title="시작 디렉토리 선택") if not start_directory: return # 디렉토리 선택이 취소된 경우 함수 종료 search_results.delete(0, tk.END) # 이전 검색 결과 삭제 def search_in_directory(directory): for root, _, files in os.walk(directory): for file in files: if search_filename in file: file_path = os.path.join(root, file) search_results.insert(tk.END, file_path) try: search_in_directory(start_directory) if not search_results.get(0, tk.END): messagebox.showinfo("검색 결과", f"'{search_filename}' 파일을 찾을 수 없습니다.") except Exception as e: messagebox.showerror("에러", f"에러 발생: {str(e)}") # Tkinter 창 생성 window = tk.Tk() window.title("파일 검색 프로그램") # 레이블 생성 label = tk.Label(window, text="검색할 파일명:") label.pack() # 검색어 입력 필드 생성 entry = tk.Entry(window) entry.pack() # 검색 버튼 생성 search_button = tk.Button(window, text="검색", command=search_files) search_button.pack() # 검색 결과 리스트 박스 생성 search_results = tk.Listbox(window, width=80, height=20) search_results.pack() # Tkinter 루프 시작 window.mainloop()
이 코드는 Tkinter를 사용하여 GUI를 생성하고, 사용자에게 검색할 파일명을 입력하고 검색 버튼을 누를 수 있도록 합니다. 검색 결과는 리스트 박스에 표시됩니다. "시작 디렉토리 선택" 버튼을 클릭하여 시작 디렉토리를 선택할 수 있습니다. 검색 결과가 없거나 에러가 발생한 경우 메시지 박스를 통해 사용자에게 알립니다.
import os
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
# 파일 검색 함수
def search_files():
search_filename = entry.get()
start_directory = filedialog.askdirectory(title="시작 디렉토리 선택")
if not start_directory:
return # 디렉토리 선택이 취소된 경우 함수 종료
search_results.delete(0, tk.END) # 이전 검색 결과 삭제
def search_in_directory(directory):
for root, _, files in os.walk(directory):
for file in files:
if search_filename in file:
file_path = os.path.join(root, file)
search_results.insert(tk.END, file_path)
try:
search_in_directory(start_directory)
if not search_results.get(0, tk.END):
messagebox.showinfo("검색 결과", f"'{search_filename}' 파일을 찾을 수 없습니다.")
except Exception as e:
messagebox.showerror("에러", f"에러 발생: {str(e)}")
# Tkinter 창 생성
window = tk.Tk()
window.title("파일 검색 프로그램")
# 레이블 생성
label = tk.Label(window, text="검색할 파일명:")
label.pack()
# 검색어 입력 필드 생성
entry = tk.Entry(window)
entry.pack()
# 검색 버튼 생성
search_button = tk.Button(window, text="검색", command=search_files)
search_button.pack()
# 검색 결과 리스트 박스 생성
search_results = tk.Listbox(window, width=80, height=20)
search_results.pack()
# Tkinter 루프 시작
window.mainloop()

관련자료
-
이전
-
다음