#python #python-3.x #windows
#python #python-3.x #Windows
Вопрос:
Я пытаюсь открыть и закрыть изображение. Откройте его в начале цикла и закройте в конце цикла. До сих пор мне удалось открыть только изображение, однако для закрытия я не смог найти правильные варианты. Для открытия я использую
img = os.startfile("image.jpg")
и для закрытия я пробовал
img.close()
Я также пробовал
os.close("image.jpg")
Как это сделать?
Комментарии:
1. Вы не можете сделать это легко.
startfile()
просто косвенно запускает связанное приложение.2. Извините, что беспокою вас, но если вы не возражаете, если я спрошу, каков сложный способ выполнения процесса открытия / закрытия.
3. Возможно, вы сможете сделать это с помощью стороннего модуля, например
pynput
, для управления приложением или, возможно, путем выполнения некоторых специфичных для ОС вызовов (viactypes
), чтобы закрыть его.
Ответ №1:
Что-то в этом направлении:
import subprocess
import os
import signal
import time
image_viewer = "name of the image viewer program"
pid = subprocess.Popen([image_viewer, "image.jpg"]).pid
time.sleep(5)
os.kill(pid, signal.SIGTERM)
Вам нужно знать имя приложения, используемого для просмотра изображения.
Если речь идет только о отображении изображения, вы также можете использовать инструментарий GUI, такой как tkinter.
Комментарии:
1. Я не знаю, доступно ли что-то подобное в Python, но вы можете использовать AssocQueryString для определения приложения по умолчанию, связанного с данным расширением файла.