Задать вопрос
@markanez

TypeError: 'NoneType' object cannot be interpreted as an integer как исправить?

Имеется такой код
import os
import time

krik = os.startfile(r'звуки\крик.mp3')
time.sleep(5)
os.close(krik)


после компиляции выскакивает данная ошибка
TypeError: 'NoneType' object cannot be interpreted as an integer

Как её исправить?
  • Вопрос задан
  • 250 просмотров
Подписаться 1 Простой 1 комментарий
Ответ пользователя Алан Гибизов К ответам на вопрос (2)
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Я думаю, что os.startfile(r'звуки\крик.mp3') возвращает None, соответственно в переменной krik содержится None, соответственно когда это None попадает на вход os.close(), вы получаете ошибку.

Я бы рекомендовал вам во-первых изучить объектную модель языка python, чтобы осознавать, что именно вы делаете. Во-вторых, изучить документацию, касающуюся используемых библиотек и методов. В общем, это легко сделать, выполнив команду help(os.startfile)
и
help(os.close)
В частности, метод os.close() требует на вход file descriptor, т.е. число, int. Значит, надо получить дескриптор и скормить его методу.

P.s. Ну, кстати, как указал уважаемый Vindicar os.close не закрывает запущенный процесс. Это надо копать в сторону команды kill, я так думаю.
Ответ написан