자유게시판

파일명 검색 프로그램을 코딩해보자

작성자 정보

  • 삼둡 작성
  • 작성일

컨텐츠 정보

본문

파이썬으로 컴퓨터 전체에 있는 파일을 대상으로 파일명으로 검색하는 프로그램을 코딩해주세요

 

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 리스트에 저장되고, 검색이 끝난 후에 출력됩니다. 시작 디렉토리를 원하는 디렉토리로 변경하고 검색할 파일명을 입력하면 검색 결과를 확인할 수 있습니다.

참고로, 이 코드는 모든 파일을 검색하므로 검색이 오래 걸릴 수 있고, 특정 디렉토리에서만 검색하도록 수정할 수 있습니다.

45116d1df5a0545068109fb08d4167b6f1365c40ib1j.png

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}' 파일을 찾을 수 없습니다.")
 

User

 

위 코드를 윈도우 형태의 실행으로 바꾸어 줄 수 있을까?

 

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:\"로 설정하고, 디렉토리 구분 기호로 역슬래시("")를 사용합니다. 따라서 이제 윈도우 시스템에서 파일명을 검색하는 데 사용할 수 있습니다. 시작 디렉토리를 변경하거나 필요한 경우 검색 파일명을 입력하여 실행하실 수 있습니다.

 

User

 

위 코드를, 터미널이 아닌 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()
 

54e63d91d045cbe8a57591ab450b002ba84537ebrfq6.png

관련자료

댓글 0
등록된 댓글이 없습니다.

인기검색어


최근글


새댓글