Открытие файла Python в неправильной папке

Я делаю программу броска костей, и у меня есть проблема. У меня есть 2 папки в моей программе: "бросок костей" и "игральные кости". В рулоне с кубиками есть кости. В игре Dice Roll также есть файл Python, который называется Dice roll.py:

from random import randint
exec(open("./dice/DiceCrop.py").read(), globals())
print(randint(1,6))

В папке с кубиками есть файл python с именем DiceCrop.py:

from PIL import Image

dice = Image.open("dice.png")

dice1 = dice.crop((0, 50, 65, 150))
dice1.save("one.png")

dice2 = dice.crop((64, 50, 131, 150))
dice2.save("two.png")

dice3 = dice.crop((130, 50, 196, 150))
dice3.save("three.png")

dice4 = dice.crop((196, 50, 262, 150))
dice4.save("four.png")

dice5 = dice.crop((262, 50, 328, 150))
dice5.save("five.png")

dice6 = dice.crop((328, 50, 394, 150))
dice6.save("six.png")

Папка игры в кости также имеет файл изображения "dice.png". Однако, когда я запускаю dice roll.py, он говорит, что такого файла, как "dice.png", нет. Я знаю, почему это происходит, но я не знаю, как это исправить. Это происходит потому, что он открывается в папке с кубиками, а не в папке с кубиками. Как сделать так, чтобы он открывался в папке с кубиками, а не в папке с кубиками? Вот сообщение об ошибке:

сообщение об ошибке

1 ответ

В продолжение предложения Диза:

DiceCropy.py:

from PIL import Image

def create_dice():
    dice = Image.open("dice.png")

    dice1 = dice.crop((0, 50, 65, 150))
    dice1.save("one.png")

    dice2 = dice.crop((64, 50, 131, 150))
    dice2.save("two.png")

    dice3 = dice.crop((130, 50, 196, 150))
    dice3.save("three.png")

    dice4 = dice.crop((196, 50, 262, 150))
    dice4.save("four.png")

    dice5 = dice.crop((262, 50, 328, 150))
    dice5.save("five.png")

    dice6 = dice.crop((328, 50, 394, 150))
    dice6.save("six.png")

roll.py:

from random import randint
from .DiceCrop import create_dice
import os

if not os.path.exists('one.png'):
    create_dice()
print(randint(1,6))

Выше следует использовать файл DiceCrop.py в качестве модуля Python, который предоставляет create_dice интерфейс. Затем вы можете повторно использовать create_dice функционировать в других файлах Python по мере необходимости. Мы также добавили быстрый тест, чтобы убедиться, что мы не воссоздаем изображения кубиков при каждом запуске. Удачи!

Другие вопросы по тегам