
Я могу получить список имен файлов в списке с именем «a», используя команду терминала Linux на Jupiter следующим образом:
a=!find . -type f \! -name '*.*' -print
Чтобы имена файлов были без расширений, соответствующая команда работает в терминале Linux;
find . -type f -exec sh -c '
for pathname do
pathname=$( basename "$pathname" )
printf "%s\n" "${pathname%.*}"
done' sh {} +
Но как мне запустить эту команду на Jupyter, присвоив ей имя 'a', как выше. Код ниже не сработал.
a=!find . -type f -exec sh -c '
for pathname do
pathname=$( basename "$pathname" )
printf "%s\n" "${pathname%.*}"
done' sh {} +
Я также пробовал менять отступы строк, но получаю синтаксическую ошибку или ничего. Из моего поиска в командной строке цикла for на Jupiter '!', возможно, должен быть в другом месте. Как мне заставить это работать?
решение1
Я решил эту проблему другим способом, если у кого-то была похожая проблема. Я использовал командную строку
a=!find . -type f \! -name '*.*' -print
это создало список имен файлов с расширениями. Я удалил расширения из каждого элемента.
files = [os.path.splitext(fname)[0] for fname in a]