Я делал функцию, которая рекурсивно ищет каталоги для файлов с определенными суффиксами.проблема с рекурсивным поиском файлов в python3
TypeError: slice indices must be integers or None or have an index method
указывая на эту линию:
if path.endswith('.',sf)==True: l.append(path)
.endswith() возвращает логическое значение и используются для проверки строк, почему, черт возьми, это дает мне вопросы о том, не являющихся целых числах?
также я решил просто распечатать все и бросить инструкцию try/except, если файл не является каталогом или файлом (это очень быстро происходит в первом запуске). он побежал штраф за минуту или две затем начали выплевывая за исключением пункта
something went wrong with /sys/bus/cpu/devices/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu1/node0/cpu0/node0/cpu1/subsystem/devices/cpu0/node0/cpu0/subsystem/devices/cpu0/subsystem/devices/cpu0/subsystem something went wrong with /sys/bus/cpu/devices/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu1/node0/cpu0/node0/cpu1/subsystem/devices/cpu0/node0/cpu0/subsystem/devices/cpu0/subsystem/devices/cpu0 something went wrong with /sys/bus/cpu/devices/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu0/node0/cpu1/node0/cpu0/node0/cpu1/subsystem/devices/cpu0/node0/cpu0/subsystem/devices/cpu0/subsystem/devices/cpu1/cache/power
ну я просто Ctrl-Z'd вернулся в ipython3 и попробовал еще раз, что сразу же воспитывался то же самое сообщение, даже если указанное каталог был /. почему он вернулся в эту же область?
редактировать: Код
def recursive_search(dr, sf):
"""searches every potential path from parent directory for files with the matching suffix"""
l=[]#for all the good little scripts and files with the right last name
for name in os.listdir(dr):#for every item in directory
path=os.path.join(dr, name)#path is now path/to/item
if os.path.isfile(path):
if path.endswith('.',sf)==True:
l.append(path)
else:
#try:
recursive_search(path, sf)
#except:
#print ('something went wrong with ', path)
если он приходит, выглядя странно у меня возникают некоторые проблемы с форматированием.
, где ваш код? –
Я думаю, '' аргумент 'sf'' endswith' не является ни целым числом, ни None, как указано в traceback. Пожалуйста, покажите код, который вы используете. – Frodon
, даже если это не в коде, который я тестировал, начиная с root и поиска скриптов python: recursive_search ('/', 'py') – user58641