Вы получаете это сообщение об ошибке, если файл Python был закрыт "извне", то есть не от метода close()
объекта файла:
>>> f = open(".bashrc")
>>> os.close(f.fileno())
>>> del f
close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
Строка del f
удаляет последнюю ссылку на файловый объект, вызывая его деструктор file.__del__
. Внутреннее состояние объекта file указывает, что файл все еще открыт, поскольку f.close()
никогда не вызывался, поэтому деструктор пытается закрыть файл. Впоследствии ОС выдает ошибку из-за попытки закрыть файл, который не открыт.
Поскольку реализация os.system()
не создает никаких файловых объектов Python, маловероятно, что вызов system()
является источником ошибки. Может быть, вы могли бы показать немного больше кода?