Python3 projet retirez __pycache__ les dossiers et .pyc fichiers
Quelle est la MEILLEURE façon de vous débarrasser de toutes les __pycache__
dossiers et .pyc/.pyo
fichiers à partir d'un python3 projet. J'ai vu plusieurs utilisateurs suggèrent la pyclean
script fourni avec Debian, mais cela ne supprime pas les dossiers. Je veux un moyen simple de nettoyer le projet avant de pousser les fichiers de mon DEP.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire manuellement avec la commande suivante:
Cela permettra d'éliminer tous *.pyc fichiers et __pycache__ répertoires de façon récursive dans le répertoire courant.
*__pycache__
,*.pyc*
et il ne fait pas de distinction entre les fichiers et les répertoires. La plupart de l'générérm
commandes seront également superflu.find
nigrep
nirm
et cela pourrait être dangereux pour n'importe quel répertoire de travail actuel, qui pourrait contenir desuseful.pycle.json
ouimportant_deployment_setting_about__pycache__.txt
etc. Que je n'aurais pas la règle sur l'ensemble de la base d'utilisateurs de la SORTE. Ne pas mentionner à quel (dangereusementrm -rf
) casséxargs
serait par un fichier avec un espace dans le nom. Donc j'ai édité...grep: parentheses not balanced
J'ai trouvé la réponse moi-même quand j'ai fait une faute de frappe pyclean comme pycclean:
De course
py3clean .
à la nettoyer très bien.macOS & Linux
BSD
find
mise en œuvre sur macOS est différente de GNU trouver - ce qui est compatible avec les BSD et GNU trouver. Commencez avec une expansion de mise en œuvre, à l'aide de-name
et la-o
pour ou - Mettre cette fonction dans votre.bashrc
fichier:Puis
cd
dans le répertoire que vous souhaitez de manière récursive propre, et le typepyclean
.GNU trouver uniquement
C'est un GNU trouver, seulement (Linux) solution, mais je pense qu'il est un peu plus agréable avec la regex:
Toute plate-forme, à l'aide de Python 3
Sur Windows, vous avez probablement n'avez même pas
find
. Vous n'avez, cependant, probablement Python 3, départ à 3.4 a la pratiquepathlib
module:Cet abus interprétations de la liste pour le bouclage, mais lors de l'utilisation de
python -c
, le style est plutôt une préoccupation secondaire. Alternativement, nous pourrions abus (par exemple)__import__
:Critique de la réponse
La réponse sommet l'habitude de dire:
Cela semble être moins efficace, car il utilise des trois processus.
find
prend une expression régulière, de sorte que nous n'avons pas besoin d'un autre invocation degrep
. De même, il a-delete
, de sorte que nous n'avons pas besoin d'un autre invocation derm
—et contrairement à un commentaire ici, il sera supprimer des répertoires non-vides, aussi longtemps qu'ils se vidées par la vertu de l'expression régulière.De la
xargs
homme page:shutil.rmtee
sur le__pycache__
répertoires au lieu de vider d'abord; un one-liner pourrait être sympa pour un simple alias. Je suis un grand fan dePath
l'instant, bien que, donc, je pense que je vais utiliser cette version dans mon script.Puisque c'est un Python 3 du projet, vous avez seulement besoin de supprimer
__pycache__
répertoires -- tous les.pyc
/.pyo
fichiers sont à l'intérieur d'eux.ou sa forme plus simple,
qui n'a pas fonctionné pour moi pour une raison quelconque (les fichiers ont été supprimés, mais les répertoires ne l'étaient pas), donc je suis, y compris à la fois par souci d'exhaustivité.
Alternativement, si vous êtes en train de faire cela dans un répertoire qui est sous contrôle de version, vous pouvez dire au RCS d'ignorer
__pycache__
dossiers de manière récursive. Puis, au moment voulu, juste nettoyer tous les fichiers ignorés. Ce sera probablement plus facile, car il y en a probablement plus à nettoyer que juste__pycache__
..pyc
fichiers sont à l'intérieur.C'est mon alias qui fonctionne à la fois avec Python 2 et Python 3 pour retirer tous les
.pyc .pyo
fichiers ainsi__pycache__
répertoires de manière récursive.Un grand merci pour les autres réponses, basé sur eux, c'est ce que j'ai utilisé pour mon paquet Debian du
prerm
fichier:Pourquoi ne pas simplement utiliser
rm -rf __pycache__
? Exécutergit add -A
ensuite de les supprimer à partir de votre référentiel et ajouter__pycache__/
pour votre .gitignore fichier.À L'Aide De PyCharm
Pour supprimer Python compilé les fichiers
Dans le
Project Tool Window
, cliquez-droit sur un projet ou un répertoire, où Python compilé les fichiers doivent être supprimés.Sur le menu contextuel, choisissez
Clean Python compiled files
.La
.pyc
fichiers se trouvant dans le répertoire sélectionné sont silencieusement supprimé.