프로젝트에서 모든 .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
'programing' 카테고리의 다른 글
| List Box와List View - 데이터 바인딩 선택 방법 (0) | 2023.04.24 |
|---|---|
| RadioButtons를 열거형으로 바인드하는 방법 (0) | 2023.04.19 |
| 루프 내의 각 출력 라인은 어떻게 처리합니까? (0) | 2023.04.19 |
| %를 사용하여 {0}과(와) 같은 자리 표시자를 대체하려고 하면 "TypeError: 문자열 형식 지정 중 일부 인수가 변환되지 않음"이 표시되는 이유는 무엇입니까? (0) | 2023.04.19 |
| Eclipse용 Bash 스크립트 플러그인? (0) | 2023.04.19 |