Проект Python3 удаляет папки pycache и.файлы pyc
каков наилучший способ очистить все __pycache__ папки и .pyc/.pyo файлы из проекта python3. Я видел, как несколько пользователей предлагают pyclean скрипт в комплекте с Debian, но это не удаляет папки. Я хочу простой способ очистить проект, прежде чем нажимать файлы на мои DVS.
7 ответов:
вы можете сделать это вручную с помощью следующей команды:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rfэто удалит все *.pyc файлы и __pycache__ каталоги рекурсивно в текущем каталоге.
Я сам нашел ответ, когда я ошибся pyclean как pycclean:
No command 'pycclean' found, did you mean: Command 'py3clean' from package 'python3-minimal' (main) Command 'pyclean' from package 'python-minimal' (main) pycclean: command not foundпод управлением
py3clean .очистил его очень красиво.
Я думаю, что это превосходит верхний ответ-поместите эту функцию в свой
.bashrcfile:pyclean () { find . -regex '.*\(__pycache__\|\.py[co]\)' -delete }затем
cdв каталог, который вы хотите рекурсивно очистить, и введитеpyclean.критика верхнего ответа
верхний ответ говорит:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rfэто казалось бы менее эффективным, потому что он использует три процесса.
findпринимает регулярное выражение, поэтому нам не нужен отдельный вызовgrep. Точно так же-delete, так что нам не нужен отдельный вызовrm- и вопреки комментарию здесь, это будет удалить непустые каталоги, пока они опустошаются в силу соответствия регулярных выражений.С
xargsна странице:find /tmp -depth -name core -type f -deleteнайдите файлы с именем core в каталоге /tmp или ниже и удалите их, но более эффективно, чем в предыдущем примере (потому что мы избегаем необходимость использования fork (2) и exec (2) для запуска rm и нам не нужно дополнительный процесс xargs).
так как это проект Python 3, вам нужно только удалить
__pycache__справочники -- все.pyc/.pyoфайлы внутри них.find . -type d -name __pycache__ -exec rm -r {} \+или его более простая форма,
find . -type d -name __pycache__ -deleteкоторый по какой-то причине не работал для меня (файлы были удалены, но каталоги не были), поэтому я включаю оба для полноты картины.
кроме того, если вы делаете это в каталоге, который находится под контролем версий, вы можете сказать RCS игнорировать
__pycache__папки рекурсивно. Затем, в нужный момент, просто очистите все игнорируемые файлы. Это, вероятно, будет более удобно, потому что там, вероятно, будет больше, чтобы очистить, чем просто__pycache__.
Это мой псевдоним, который работает как с Python 2, так и с Python 3, удаляя все
.pyc .pyoфайлы__pycache__каталоги рекурсивно.alias pyclean='find . -name "*.py[c|o]" -o -name __pycache__ -exec rm -rf {} +'
большое спасибо за другие ответы, на их основе это то, что я использовал для моего пакета в Debian!--1-- > file:
#!/bin/sh set -e deb_package='package-name' python_package='package_name' if which pyclean >/dev/null 2>&1; then py3clean -p $deb_package else dpkg -L $deb_package | grep ${python_package}$ | while read file do find ${file} -type d -name __pycache__ -exec rm -r {} \+ done fi