Я пишу код для выполнения некоторых команд во всех подкаталогах или определенных каталогах, используя модуль subprocess.run.
В модуле подпроцесса Ubuntu & 3.7 в python3 я использовал команду 'find' и для-loop оператор.
В терминале работает
1-й случай:
for paTh in $(find `pwd` -mindepth 1 -type d); do (cd $paTh && echo $paTh); done
2-й случай:
IFS='\n'; for paTh in $(find `pwd` -mindepth 1 -type d); do (cd $paTh && echo $paTh); done
Нокогда я запускаю их через Python с модулем подпроцесса, он получает ошибки
1-й случай:
c = 'for paTh in $(find `pwd` -mindepth 1 -type d); do (cd $paTh && echo $paTh); done'
или
2-й случай:
c = 'IFS=\'\\n\'; for paTh in $(find `pwd` -mindepth 1 -type d); do (cd $paTh && echo $paTh); done'
А затем
subprocess.run(c, check=True, shell=True, cwd='.')
Но имейте в виду, что при вводе 'pwd' в терминале мой абсолютный путь содержит пробелы, например, "... / терминал с python /.../ my_forder
В 1-м случае: он показал мне дискретные линии, разделенные пробелами, как я упоминал выше.
.../terminal
with
python/.../my_forder
Во 2-м случае: он искал из корневого каталога в общие каталоги. (Я перестал работать)
В чем проблемы и что мне делать?