요즘 애용하고있는 랜덤 파일 선택기
이전 거처 멸망 전에 만든 방주가 감당이 안되서 gpt로 프로그램 짜봤는데 생각보다 유용한것 같아서 평소에 받은 은혜를 갚아보기 위해서 올려봄.
세줄요약 있음
1
실행하면 이런 화면이고, 여기서 방주 주소 추가랑 제거 가능함.
코드
import os
import random
import tkinter as tk
from tkinter import filedialog, messagebox, Listbox, Scrollbar, END, SINGLE
import subprocess
import json
import webbrowser
import re
CONFIG_FILE = "folder_config.json"
ARCHIVE_EXTENSIONS = ('.zip', '.7z', '.rar', '.egg')
class ArchiveFileSelectorApp:
def __init__(self, root):
self.root = root
self.root.title("랜덤 압축 파일 선택기")
self.folder_list = []
# Load saved folders
self.load_folder_list()
# Frame for folder list and scrollbar
list_frame = tk.Frame(root)
list_frame.pack(padx=10, pady=10)
self.folder_listbox = Listbox(list_frame, selectmode=SINGLE, width=60)
self.folder_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar = Scrollbar(list_frame, orient="vertical")
scrollbar.config(command=self.folder_listbox.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
self.folder_listbox.config(yscrollcommand=scrollbar.set)
# Populate listbox
for folder in self.folder_list:
self.folder_listbox.insert(END, folder)
# Frame for buttons
button_frame = tk.Frame(root)
button_frame.pack(padx=10, pady=10)
self.add_button = tk.Button(button_frame, text="폴더 추가", command=self.add_folder)
self.add_button.grid(row=0, column=0, padx=5)
self.remove_button = tk.Button(button_frame, text="선택한 폴더 제거", command=self.remove_selected_folder)
self.remove_button.grid(row=0, column=1, padx=5)
self.open_button = tk.Button(button_frame, text="랜덤 압축 파일 열기", command=self.open_random_archive)
self.open_button.grid(row=0, column=2, padx=5)
# Save folders on close
self.root.protocol("WM_DELETE_WINDOW", self.on_close)
def add_folder(self):
folder = filedialog.askdirectory(title="추가할 폴더 선택")
if folder and folder not in self.folder_list:
self.folder_list.append(folder)
self.folder_listbox.insert(END, folder)
def remove_selected_folder(self):
selected = self.folder_listbox.curselection()
if selected:
index = selected[0]
self.folder_listbox.delete(index)
del self.folder_list[index]
def open_random_archive(self):
archive_files = []
for folder in self.folder_list:
for dirpath, _, filenames in os.walk(folder):
for filename in filenames:
if filename.lower().endswith(ARCHIVE_EXTENSIONS):
full_path = os.path.abspath(os.path.join(dirpath, filename))
archive_files.append(full_path)
if archive_files:
selected_file = random.choice(archive_files)
subprocess.run(f'explorer /select,"{selected_file}"', shell=True)
# Check for RJ or VJ code in filename
filename = os.path.basename(selected_file)
match = re.search(r'(RJ|VJ)(\d+)', filename, re.IGNORECASE)
if match:
code = match.group(0).upper()
prefix = code[:2]
if prefix == 'RJ':
url = f'https://www.dlsite.com/maniax/work/=/product_id/{code}.html'
elif prefix == 'VJ':
url = f'https://www.dlsite.com/pro/work/=/product_id/{code}.html'
webbrowser.open(url)
else:
messagebox.showinfo("알림", "선택된 폴더들에서 압축 파일(.zip, .7z, .rar, .egg)을 찾을 수 없습니다.")
def load_folder_list(self):
if os.path.exists(CONFIG_FILE):
try:
with open(CONFIG_FILE, 'r', encoding='utf-8') as f:
self.folder_list = json.load(f)
except Exception as e:
print(f"폴더 목록 로드 실패: {e}")
self.folder_list = []
def save_folder_list(self):
try:
with open(CONFIG_FILE, 'w', encoding='utf-8') as f:
json.dump(self.folder_list, f, ensure_ascii=False, indent=2)
except Exception as e:
print(f"폴더 목록 저장 실패: {e}")
def on_close(self):
self.save_folder_list()
self.root.destroy()
# Run the app
if __name__ == "__main__":
root = tk.Tk()
app = ArchiveFileSelectorApp(root)
root.mainloop()
기능
다중 폴더 선택 가능
지정 폴더 내의 하위 폴더에서도 압축파일 검색 가능
지금 .zip .7z .rar .egg 파일 검색 됨
파일명에 RJ나 VJ 있으면 컴터 기본 브라우저로 DL링크 열어줌
*코드 수정해서 쓸사람은 알아서 수정해 gpt 코딩 잘하더라
젤다
https://kio.ac/c/cwMCZA5AmJQ_b36cgd45Cb
세줄요약
방주 양이 감당이 안되서 랜덤 선택기 만듦
쓸사람 써라
복구 항상 고맙다
13
공지
AI 이미지 관련 공지 및 관련 규정 수정 공지
1uF
05/02
60866
22
AI 이미지 관련 공지 및 관련 규정 수정 공지
공지
1uF
05/02 60866 22
공지
‼️뉴비 필독 가이드‼️
1uF
05/02
91665
134
‼️뉴비 필독 가이드‼️
공지
1uF
05/02 91665 134
공지
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
SK
04/05
205682
-25
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
공지
SK
04/05 205682 -25
공지
🔔[필독] 탭 별 이용 가이드 (20260206~)
Etrick
02/05
253929
-41
🔔[필독] 탭 별 이용 가이드 (20260206~)
공지
Etrick
02/05 253929 -41
공지
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
SK
05/17/25
1243877
-14
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
공지
SK
05/17/25 1243877 -14
동인
Poriuretan 수영부의 에이스
uzaki
04/25
15246
37
Poriuretan 수영부의 에이스
동인
uzaki
04/25 15246 37
동인
Poriuretan 여름 해변에서 의기투합
uzaki
04/25
17967
48
Poriuretan 여름 해변에서 의기투합
동인
uzaki
04/25 17967 48
동인
Poriuretan 시골누나
uzaki
04/25
16306
46
Poriuretan 시골누나
동인
uzaki
04/25 16306 46
동인
Poriuretan 선생님
uzaki
04/25
13192
31
Poriuretan 선생님
동인
uzaki
04/25 13192 31
동인
Poriuretan 옆방의 아주머니
uzaki
04/25
14114
28
Poriuretan 옆방의 아주머니
동인
uzaki
04/25 14114 28
동인
Poriuretan 정오가 지난 오후의 단지아내
uzaki
04/25
15496
30
Poriuretan 정오가 지난 오후의 단지아내
동인
uzaki
04/25 15496 30
동인
Poriuretan 폭풍전의 도서실
uzaki
04/25
11427
28
Poriuretan 폭풍전의 도서실
동인
uzaki
04/25 11427 28
동인
Poriuretan 장마철의 빨래방
uzaki
04/25
11427
43
Poriuretan 장마철의 빨래방
동인
uzaki
04/25 11427 43
동인
Poriuretan 갸루b의 파파카츠
uzaki
04/25
12649
60
Poriuretan 갸루b의 파파카츠
동인
uzaki
04/25 12649 60
미번
[미번][번역요청] 디펜드 다이어리~_ver1.02
minki
04/25
20566
27
[미번][번역요청] 디펜드 다이어리~_ver1.02
미번
minki
04/25 20566 27
미번
[미번] RJ01612483,RJ01414102
페비
04/25
55303
261
[미번] RJ01612483,RJ01414102
미번
페비
04/25 55303 261
미번
[요청복구] RJ01412500 Night High 5
아무일도없었다
04/25
19183
37
[요청복구] RJ01412500 Night High 5
미번
아무일도없었다
04/25 19183 37
번역
기번) 더블 유부녀(미검수)
썩은동태눈깔맨
04/25
32097
106
기번) 더블 유부녀(미검수)
번역
썩은동태눈깔맨
04/25 32097 106
작업현황
특공위원회 오우카 RPG 0 이미지(ui) 번역 80% 진행
joyed47106
04/25
6998
19
특공위원회 오우카 RPG 0 이미지(ui) 번역 80% 진행
작업현황
joyed47106
04/25 6998 19
소리
[한국어 자막판][구매보급][전편느긋오호】 다우너 오호고에 개변태 후배와 섹스라이프
이름뭐하지
04/25
19608
69
[한국어 자막판][구매보급][전편느긋오호】 다우너 오호고에 개변태 후배와 섹스라이프
소리
이름뭐하지
04/25 19608 69
미번
[미번] 비주얼노벨계 야겜 11개
미스터장
04/25
19140
92
[미번] 비주얼노벨계 야겜 11개
미번
미스터장
04/25 19140 92
번역
기번) BBC×FAMILY~
썩은동태눈깔맨
04/25
42563
215
기번) BBC×FAMILY~
번역
썩은동태눈깔맨
04/25 42563 215
복구
(요청복구) 테러블 레버토리 v1.01
kakinara12
04/25
39107
62
(요청복구) 테러블 레버토리 v1.01
복구
kakinara12
04/25 39107 62
세이브
고블린 네스트 세이브 최신화 완
흰꼴뚜기
04/25
8631
15
고블린 네스트 세이브 최신화 완
세이브
흰꼴뚜기
04/25 8631 15
복구
RJ388166 에이전트 시리우스 DLC
doritori
04/25
27643
63
RJ388166 에이전트 시리우스 DLC
복구
doritori
04/25 27643 63
후기 및 공략
개꽂혀서 최소 10시간 이상 박았던 게임들
dpgutlqkf
04/25
29998
82
개꽂혀서 최소 10시간 이상 박았던 게임들
후기 및 공략
dpgutlqkf
04/25 29998 82
소리
~임신 전설~ 옛 용사인 나와 초변태 폭유 공주님×3의 모유 듬뿍 임신시키기 아이 만들기 마왕 봉인 전설♪
dasdaa
04/25
23257
109
~임신 전설~ 옛 용사인 나와 초변태 폭유 공주님×3의 모유 듬뿍 임신시키기 아이 만들기 마왕 봉인 전설♪
소리
dasdaa
04/25 23257 109
동인
후타, 명방) [직번] 시한테 박는 니엔
wa4231
04/25
15939
94
후타, 명방) [직번] 시한테 박는 니엔
동인
wa4231
04/25 15939 94
소리
[구매보급]【사상 최고의 오호신음】몰락 메스가키 영애 음문 조교
이름뭐하지
04/25
13216
63
[구매보급]【사상 최고의 오호신음】몰락 메스가키 영애 음문 조교
소리
이름뭐하지
04/25 13216 63
복구
(요청복구) カーテンのむこう NTR 커튼 너머 NTR ver.1.8
sinryeong
04/25
27892
90
(요청복구) カーテンのむこう NTR 커튼 너머 NTR ver.1.8
복구
sinryeong
04/25 27892 90
번역
[기번] 사신상관EX+DLC 2.0.02
풍수식노천탕
04/25
52260
185
[기번] 사신상관EX+DLC 2.0.02
번역
풍수식노천탕
04/25 52260 185
복구
(요청복구) 무치 무치 자매 환생 목적지에서 변태 봉사 생활
sinryeong
04/25
20799
67
(요청복구) 무치 무치 자매 환생 목적지에서 변태 봉사 생활
복구
sinryeong
04/25 20799 67
영상
메르시 (오버워치)
브레머튼
04/25
19693
101
메르시 (오버워치)
영상
브레머튼
04/25 19693 101
창작
(청아) 꾸준 연필 30주차
지나가던사람
04/25
17152
28
(청아) 꾸준 연필 30주차
창작
지나가던사람
04/25 17152 28
동인
[AI번역] [JUNN] 네토라레바에 - 인싸 여친의 SNS 네토라레 기록 2
gkcuwuwlltnnrra
04/25
44512
153
[AI번역] [JUNN] 네토라레바에 - 인싸 여친의 SNS 네토라레 기록 2
동인
gkcuwuwlltnnrra
04/25 44512 153
s/somisoft
• 143,985 subscribers여러가지 다루는 서브
Created 05/17/2025, 14:58:43