Как достать файлы из скомпилированной программы на python?

Я написал программу, которая запускает анимацию в окне. Когда я закончил ее, я ее скомпилировал с помощью pyinstaller, добавив к скрипту звук и папку с кадрами (звук и папка в одной директории со скриптом) с помощью --add-data. Никаких архивов у меня нет, я скрипт и файлы в один .exe файл поместил Теперь мне нужно как-то достать эти звук и папку. Как это можно сделать?

Вот скрипт:

from tkinter import *
from PIL import Image, ImageTk
from time import sleep
from threading import Thread
import pyglet
import os

# Create the main window
root = Tk()

root.configure(background='black')
root.geometry("800x800")

# Create a label to display the image
image_label = Label(root, borderwidth=0)
image_label.place(relx=0.5, rely=0.5, anchor="center")

# Load frames
imageFiles = os.listdir("frames") # до компиляции
images = []

for i in range(len(imageFiles)):
    image = Image.open(f"frames/{imageFiles[i]}")
    image = ImageTk.PhotoImage(image)
    images.append(image)

def animateWindow():
    global image_label
    while True:
        for i in range(len(images)):
            sleep(0.1)
            image_label.config(image=images[i])

def playSound():
    while True:
        player = pyglet.media.Player() 
        source = pyglet.media.StaticSource(pyglet.media.load("audio.wav")) # до компиляции
        player.queue(source)
        player.play()
        sleep(34)

t1 = Thread(target=animateWindow)
t2 = Thread(target=playSound)

t1.start()
t2.start()

root.mainloop()

Ответы (1 шт):

Автор решения: eri

pyinstaller это самораспаковывающийся zip:

  1. запусти программу и поищи свои файлы в %TEMP% (C:/Users/<username>/AppData/Local/Temp/<tempdir>)
  2. открой архиватором, например 7z
  3. через pyi-archive_viewer что идет в комплекте к pyinstaller
→ Ссылка