programing

프로젝트에서 모든 .pyc 파일을 삭제하려면 어떻게 해야 합니까?

javajsp 2023. 4. 19. 22:16

프로젝트에서 모든 .pyc 파일을 삭제하려면 어떻게 해야 합니까?

꽤 큰 프로젝트에서 파일 이름을 변경했는데, .pyc 파일을 삭제하려고 합니다.bash 스크립트를 사용해 보았습니다.

 rm -r *.pyc

그러나 그것은 내가 생각했던 것처럼 폴더에 반복되지 않는다.내가 뭘 잘못하고 있지?

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

find . -name '*.pyc' -type f -delete

확실히 가장 간단하다.

에 추가~/.bashrc:

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

그러면 모든 .pyc 및 .po 파일이 삭제됩니다.__pycache__디렉토리로 이동합니다.그것은 또한 매우 빠르다.

용도는 다음과 같습니다.

$ cd /path/to/directory
$ pyclean

현재 버전의 데비안에는pyclean에 있는 스크립트python-minimal패키지.

사용법은 간단합니다.

pyclean .

bash > = 4.0(또는 zsh)을 사용하는 경우

rm **/*.pyc

주의:*/*.pyc모두 선택.pyc첫 번째 수준의 서브디렉토리에 있는 파일,**/*.pyc는, 디렉토리 트리 전체를 재귀적으로 스캔 합니다.예를 들면,foo/bar/qux.pyc에 의해 삭제됩니다.rm **/*.pyc에 의해서가*/*.pyc.

globalstar 쉘 옵션을 사용하도록 설정해야 합니다.유효하게 하려면globstar:

shopt -s globstar

상태를 확인하려면:

shopt globstar

Windows 사용자의 경우:

del /S *.pyc

난 그걸 위해 별칭을 사용하곤 했어

$ which pycclean

pycclean is aliased to `find . -name "*.pyc" | xargs -I {} rm -v "{}"'
find . -name '*.pyc' -print0 | xargs -0 rm

검색 결과 *.pyc 파일이 반복적으로 검색됩니다.xargs는 이 이름 목록을 가져와서 rm으로 전송합니다.-print0 및 -0은 파일 이름을 늘 문자로 구분하도록 명령합니다.이렇게 하면 공백이 포함된 파일 이름 및 새 줄이 포함된 파일 이름에서 올바르게 작동할 수 있습니다.

exec을 사용하는 솔루션은 작동하지만 모든 파일에 대해 rm의 새 복사본을 생성합니다.시스템이 느리거나 파일이 너무 많은 경우에는 시간이 너무 오래 걸립니다.

arg를 몇 개 추가할 수도 있습니다.

find . -iname '*.pyc' -print0 | xargs -0 --no-run-if-empty  rm

iname은 *와 같이 대소문자를 구분하지 않습니다.PYC. no-run-if-empty를 지정하면 이러한 파일이 없는 경우 rm에서 오류가 발생하지 않습니다.

$ find . -name '*.pyc' -delete

이것은 보다 빠르다.

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

게다가, 사람들은 보통 모든 것을 제거하기를 원한다.*.pyc,*.pyo파일 및__pycache__현재 디렉토리에서 반복적으로 디렉토리가 나타납니다.

명령어:

find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

장고 연장

주의: 이 답변은 이미 Django Extension을 사용하고 있는 Django 프로젝트에 고유합니다.

python manage.py clean_pyc

구현은 소스 코드에서 확인할 수 있습니다.

다른 배리언트를 혼재시키기 위해서도, 다음과 같은 백인테이트를 사용할 수 있습니다.

rm `find . -name *.pyc`

완전 재귀적

ll **/**/*.pyc
rm **/**/*.pyc

현재 PyPI에는 사용하기 쉬운 패키지 pyclean과 크로스 플랫폼이 있습니다.사용자는 간단한 명령줄로 모든 데이터를 정리하기만 하면 됩니다.__pycache__현재 dir의 파일:

pyclean .

.pyc를 더 이상 사용하지 않을 경우 터미널에서 다음 행을 사용할 수 있습니다.

export PYTHONDONTWRITEBYTECODE=1

마음이 바뀌면:

unset PYTHONDONTWRITEBYTECODE

첫 번째 실행:

find . -type f -name "*.py[c|o]" -exec rm -f {} +

그 후 다음을 추가합니다.

export PYTHONDONTWRITEBYTECODE=1

~/.profile에게

rm -r 「」에 준.rm아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 맞다. 가지 은 다음과 같습니다

for i in $( find . -name *.pyc )
do
  rm $i
done

find디렉토리에서 *. 파일을 하여 *.pyc 파일을 검색합니다.for은 발견된 파일 하여 각합니다.loop은 각 파일을 삭제합니다.

find . -name "*.pyc"|xargs rm -rf

프로젝트 폴더에서 모든 .pyc 파일을 삭제하려는 경우.

우선은

cd <path/to/the/folder>

모든 .pyc 파일을 찾아 삭제합니다.

find . -name \*.pyc -delete

find . -name "*.pyc" -type f -delete.

이치노 실행( 「 」find . -name "*.pyc" -type f삭제할 파일을 확인합니다.

또한 -delete가 명령어의 마지막 인수인지 확인하십시오.-name *.pyc 인수 앞에 입력하면 모든 것이 삭제됩니다.

현재 디렉터리에 있는 모든 python 컴파일 파일을 삭제합니다.

find . -name "__pycache__"|xargs rm -rf
find . -name "*.pyc"|xargs rm -rf

「」를 모두 .*.pyc 및 "파일"__pycache__디렉토리가 현재 디렉토리에서 반복적으로 발생합니다.

  • python 포함:
import os

os.popen('find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf')
  • 또는 terminal 또는 cmd를 사용하여 수동으로 실행합니다.
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

py3clean★★★★★★★★★★★★★★★★★★★★★★★!

cd /usr/local/lib/python3.9
sudo py3clean -v .

M1에 몇 가지 무시 파라미터를 추가해야 했습니다.

pyclean --verbose . --ignore "Library",".Trash"  

DEL /F /S /Q "Z:\aaa\*.pyc"
cmdfile 의 bat을 합니다.

언급URL : https://stackoverflow.com/questions/785519/how-do-i-remove-all-pyc-files-from-a-project