요즘 애용하고있는 랜덤 파일 선택기
이전 거처 멸망 전에 만든 방주가 감당이 안되서 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
61725
22
AI 이미지 관련 공지 및 관련 규정 수정 공지
공지
1uF
05/02 61725 22
공지
‼️뉴비 필독 가이드‼️
1uF
05/02
92390
134
‼️뉴비 필독 가이드‼️
공지
1uF
05/02 92390 134
공지
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
SK
04/05
206361
-25
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
공지
SK
04/05 206361 -25
공지
🔔[필독] 탭 별 이용 가이드 (20260206~)
Etrick
02/05
254705
-41
🔔[필독] 탭 별 이용 가이드 (20260206~)
공지
Etrick
02/05 254705 -41
공지
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
SK
05/17/25
1244443
-14
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
공지
SK
05/17/25 1244443 -14
일반
헤르미온느 길들이기는 dl 에 냈으면 얼마나 팔렸을까
하이바라
05/20
5235
0
헤르미온느 길들이기는 dl 에 냈으면 얼마나 팔렸을까
일반
하이바라
05/20 5235 0
일반
자러갈께.
아이기스맘
05/20
1849
6
자러갈께.
일반
아이기스맘
05/20 1849 6
질문
dlsite에서 겜 어떤 툴로 만들어졌는지 확인할 수 있음?
ahnhyunmin
05/20
5432
0
dlsite에서 겜 어떤 툴로 만들어졌는지 확인할 수 있음?
질문
ahnhyunmin
05/20 5432 0
동인
따끈따끈한 타케다 신규 낙서장 (나데시코)
riden
05/20
26790
48
따끈따끈한 타케다 신규 낙서장 (나데시코)
동인
riden
05/20 26790 48
요청
blendy 모음집 복구 요청드려도 될까요
dudqhrcl
05/20
6012
0
blendy 모음집 복구 요청드려도 될까요
요청
dudqhrcl
05/20 6012 0
야짤
ai) 큰 가슴 사이로 총알이 쓩~~
Ghost
05/20
10102
37
ai) 큰 가슴 사이로 총알이 쓩~~
야짤
Ghost
05/20 10102 37
야짤
뫼엥 fantia가 검열로 컷당하다니
강철검
05/20
5925
10
뫼엥 fantia가 검열로 컷당하다니
야짤
강철검
05/20 5925 10
야짤
ai) MMM 모음집
Ghost
05/20
9621
21
ai) MMM 모음집
야짤
Ghost
05/20 9621 21
일반
비타퀘는 조이플로 안되나보네
chdodnd
05/20
3805
0
비타퀘는 조이플로 안되나보네
일반
chdodnd
05/20 3805 0
복구
[[요청복구]] [RJ340568] 상태이상 1 〜음문 금서 기생충편〜
에로스테는 필수 스테는 선택
05/20
19145
122
[[요청복구]] [RJ340568] 상태이상 1 〜음문 금서 기생충편〜
복구
에로스테는 필수 스테는 선택
05/20 19145 122
질문
비월선행록 선발대에게 플레이-오류 질문좀
o0o99
05/20
2541
0
비월선행록 선발대에게 플레이-오류 질문좀
질문
o0o99
05/20 2541 0
야짤
ai) ----스압-----아이마스 계열...?
Ghost
05/20
5330
19
ai) ----스압-----아이마스 계열...?
야짤
Ghost
05/20 5330 19
동인
Yutsuki Tsuzuri-쓰레기 현자 이야기 2
k8625
05/20
20992
41
Yutsuki Tsuzuri-쓰레기 현자 이야기 2
동인
k8625
05/20 20992 41
일반
갑자기 화가난다.
아즈칼
05/20
2660
2
갑자기 화가난다.
일반
아즈칼
05/20 2660 2
질문
미캉의 여름방학 클리닉 어떻게 열음?
jaemyunglee
05/20
3049
0
미캉의 여름방학 클리닉 어떻게 열음?
질문
jaemyunglee
05/20 3049 0
질문
비타퀘2 창관파트 선물 질문
부탄가스
05/20
1974
1
비타퀘2 창관파트 선물 질문
질문
부탄가스
05/20 1974 1
후기 및 공략
의술사 3회차 후기
llll-llll
05/20
5174
5
의술사 3회차 후기
후기 및 공략
llll-llll
05/20 5174 5
동인
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 1
k8625
05/20
29556
189
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 1
동인
k8625
05/20 29556 189
동인
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 2
k8625
05/20
37724
284
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 2
동인
k8625
05/20 37724 284
동인
[직번] [kuroinu] 악몽의 학원 생활 위원장의 운명
maha1004
05/20
20810
76
[직번] [kuroinu] 악몽의 학원 생활 위원장의 운명
동인
maha1004
05/20 20810 76
번역
[손번역][2차번역본] RJ01526327 어서오세요! 어린이 만들기 온천 마을 1.01
sjdwj
05/20
55090
271
[손번역][2차번역본] RJ01526327 어서오세요! 어린이 만들기 온천 마을 1.01
번역
sjdwj
05/20 55090 271
일반
ntr물은 말그대로 심장을 떨리게 하는 꼴림이 있다
인생좆망함
05/20
2179
0
ntr물은 말그대로 심장을 떨리게 하는 꼴림이 있다
일반
인생좆망함
05/20 2179 0
복구
[[요청복구]] [RJ422316] 전투에로 RPG ~음욕의 마탑~
에로스테는 필수 스테는 선택
05/20
28853
250
[[요청복구]] [RJ422316] 전투에로 RPG ~음욕의 마탑~
복구
에로스테는 필수 스테는 선택
05/20 28853 250
번역
[기계번역/자동번역] Yaradiel’s Crown [v0.7.1]
karuparu13
05/20
30425
65
[기계번역/자동번역] Yaradiel’s Crown [v0.7.1]
번역
karuparu13
05/20 30425 65
일반
야겜하면서 제일 힘든거
Kikio
05/20
3241
1
야겜하면서 제일 힘든거
일반
Kikio
05/20 3241 1
동인
Grimgrim-goat짱모음
k8625
05/20
17778
125
Grimgrim-goat짱모음
동인
k8625
05/20 17778 125
일반
가끔 보일때마다 너무 폭력적임
ㅇㅇ
05/20
3397
0
가끔 보일때마다 너무 폭력적임
일반
ㅇㅇ
05/20 3397 0
요청
[복구요청] (이미지 번역) [RJ01274529] 하루우리 카드 게이머즈 메뉴, 스토리 제목 번역
dream
05/20
3384
0
[복구요청] (이미지 번역) [RJ01274529] 하루우리 카드 게이머즈 메뉴, 스토리 제목 번역
요청
dream
05/20 3384 0
일반
의술사가 왜 신선한지 생각해봤는데
ㅇㅇ
05/20
2977
0
의술사가 왜 신선한지 생각해봤는데
일반
ㅇㅇ
05/20 2977 0
질문
복구 관련 질문 드립니다
arquivity
05/20
2474
0
복구 관련 질문 드립니다
질문
arquivity
05/20 2474 0
s/somisoft
• 143,985 subscribers여러가지 다루는 서브
Created 05/17/2025, 14:58:43