7

Как удалить все .pyc файлы из проекта?

23

У меня есть проблема: я переименовал некоторые файлы в довольно большом проекте и хочу удалить оставшиеся .pyc файлы. Я попытался использовать следующий bash-скрипт:

rm -r *.pyc

Однако, как оказалось, он не рекурсивно обходит папки, как я ожидал. Что я делаю не так?

5 ответ(ов)

12

Для того чтобы удалить все файлы с расширением .pyc в текущей директории и всех поддиректориях, вы можете использовать следующую команду в терминале:

find . -name "*.pyc" -exec rm -f {} \;

Вот что происходит в этой команде:

  • find . – начинает поиск в текущей директории (.).
  • -name "*.pyc" – ищет файлы, которые соответствуют шаблону с расширением .pyc.
  • -exec rm -f {} \; – для каждого найденного файла выполняет команду rm -f, что означает "принудительно удалить файл". {} заменяется на имя каждого найденного файла. \; в конце указывает на завершение команды -exec.

Таким образом, эта команда позволит вам очистить директорию от всех скомпилированных Python-файлов, которые имеют расширение .pyc. Будьте осторожны при использовании этой команды, так как она приведет к безвозвратному удалению файлов.

10

Команда find . -name '*.pyc' -type f -delete выполняет поиск всех файлов с расширением .pyc начиная с текущей директории (.) и удаляет их.

Вот подробное разъяснение каждого компонента команды:

  • find . — ищет файлы в текущей директории и всех её поддиректориях.
  • -name '*.pyc' — фильтрует результаты поиска, выбирая только те файлы, которые имеют расширение .pyc.
  • -type f — указывает, что нужно искать только обычные файлы (игнорируя директории и другие типы).
  • -delete — удаляет найденные файлы.

Таким образом, эта команда эффективно очищает директорию от скомпилированных файлов Python, что может быть полезно для освобождения места или устранения потенциальных проблем при разработке.

0

Чтобы добавить функцию для удаления файлов .pyc и .pyo, а также директорий __pycache__, откройте свой файл ~/.bashrc и добавьте следующий код:

pyclean () {
        find . -type f -name "*.py[co]" -delete
        find . -type d -name "__pycache__" -delete
}

Эта функция быстро удаляет все файлы с расширениями .pyc и .pyo, а также директории __pycache__.

Использовать её очень просто. Просто выполните следующие команды:

$ cd /path/to/directory
$ pyclean

После этого все ненужные файлы и директории будут удалены из указанной директории.

0

В текущей версии Debian у вас есть скрипт pyclean, который входит в пакет python-minimal.

Использование очень простое:

pyclean .
0

Если вы используете bash версии 4.0 или выше (или zsh), то для удаления всех файлов с расширением .pyc в директории и поддиректориях можно воспользоваться следующей командой:

rm **/*.pyc

Обратите внимание, что */*.pyc выбирает только файлы .pyc в непосредственных первых поддиректориях, в то время как **/*.pyc рекурсивно проходит по всему дереву каталогов. Например, файл foo/bar/qux.pyc будет удалён командой rm **/*.pyc, но не будет удален командой */*.pyc.

Чтобы использовать globstar, необходимо включить соответствующую опцию в оболочке. Для этого выполните:

shopt -s globstar

Чтобы проверить, включена ли опция globstar, используйте команду:

shopt globstar
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь