Ok, jeśli twój projekt jest dobrze zorganizowany, tak że na każdy folder, cała jego zawartość to pliki pod python3 lub 2 to oczywiście. Jeśli masz po prostu zbiór mało powiązanych skryptów to moje rozwiązanie jest moim zdaniem bezpieczniejsze.
Wyciągnij log dla wszystkich katalogów i przejrzyj wybiórczo, czy się zgadzają. To jedyna opcja. Chyba, że masz gdzieś projekt mieszany 2<>3. To wtedy, wracasz do punktu wyjścia. Poza tym, z tym returnem na samym końcu pętli, jeśli folder nie zawiera plików *.py to dostaniesz błędną informację, ale skoro nie masz takiego problemu, to myślę, że poza tym jest ok.
Zastanów się nad zwracaniem tupli ( nazwa_sprawdzonego_pliku, wersja_pythona), łatwiej później dojść, które pliki były skanowane.
Albo po prostu wrzuć moduł logging
i zapisz do loga, te informacje, w razie jakby co nie działało.
* projekt1
* projekt2
+ projekt2a
+ projekt2b
Gdzie, projekt2 i 2b mają różne wymagane wersje, też jest problemem, chyba, że u ciebie taka sytuacji nie występuje.