Родился 7 марта 1920 года в деревне Никифоровка Венёвского уезда Тульской губернии. С 1929 года жил в Москве. В 1936 году окончил среднюю школу. Работал в Московском пароходстве, затем токарем на заводе.
В армии с ноября 1940 года. До 1941 года служил связистом на Дальнем Востоке. В марте 1942 года окончил Хабаровское военное пехотное училище.
Участник Великой Отечественной войны: в июле-августе 1942 - командир взвода 1392-го стрелкового полка, в августе 1942 - мае 1944 - командир роты, заместитель командира и командир батальона, заместитель командира 1326-го (с марта 1943 - 233-го гвардейского) стрелкового полка. Воевал на Сталинградском, Воронежском, Степном и 2-м Украинском фронтах. Участвовал в Сталинградской и Курской битвах, Белгородско-Харьковской операции, битве за Днепр, Кировоградской и Уманско-Ботошанской операциях.
Особо отличился при форсировании Днепра. 25 сентября 1943 года с вверенным ему батальоном форсировал реку Днепр в районе села Бородаевка (Верхнеднепровский район Днепропетровской области, Украина) и захватил плацдарм. До 10 октября 1943 года батальон под его командованием углубился на 10 километров, отразил множество вражеских контратак, нанеся гитлеровцам значительный урон в боевой технике и живой силе.
За мужество и героизм, проявленные в боях, Указом Президиума Верховного Совета СССР от 26 октября 1943 года гвардии капитану Качанову Ивану Петровичу присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда».
В январе 1945 года окончил курсы «Выстрел». В апреле-мае 1945 - заместитель командира 27-го гвардейского стрелкового полка (3-й Белорусский фронт). Участвовал в Земландской операции. За время войны был четыре раза легко ранен: в августе 1942 года - осколком в живот, 21 сентября 1942 года - осколком в левое плечо, 27 ноября 1942 года - осколком в правое плечо, 11 января 1943 года - осколком в правую ногу.
В 1948 году окончил Военную академию имени М. В. Фрунзе. Служил командиром батальона, 1-м помощником начальника оперативного отделения штаба стрелковой дивизии и заместителем командира отдельного стрелкового батальона (в Одесском военном округе). С июня 1953 года майор И. П. Качанов - в запасе.
Работал на железной дороге мастером опытно-сварочного путевого поезда № 15.
Жил в Москве. Умер 9 февраля 1975 года. Похоронен на Кузьминском кладбище в Москве.