Python으로 컴퓨터 내 중복 파일을 자동으로 정리합니다. 10줄 코드(자동 스크립트)만 있으면 됩니다.
주요 지식은 다음과 같습니다.
단계 분석
이 프로그램은 다음과 같은 논리를 구현할 수 있습니다.
주어진 폴더 아래에 있는 모든 파일을 훑어보고 중첩 순환을 통해 두 개의 파일이 같은지 비교하고 같은 경우 후자를 삭제합니다.
문제를 실현하는 관건은 바로
어떻게 두 서류가 같을지 판단합니까?
여기서 우리는 filecmp 모듈을 사용하여 공식적인 소개 문서를 볼 수 있다.
# x y
print(filecmp.cmp(x, y))
# True
이 문제를 해결하면 우리는 코드를 쓰기 시작할 수 있다.Python 구현
필요한 라이브러리 가져오기 및 대상 폴더 경로 설정
import os
import glob
import filecmp
dir_path = r'C:\\xxxx'
이어서 모든 파일의 절대 경로를 훑어보면 glob 모듈의 어댑터를 이용하여 recursive 파라미터를 결합하면 완성할 수 있습니다. 프레임워크는 다음과 같습니다.
for file in glob.glob(path + '/**/*', recursive=True):
pass
모든 파일이나 폴더를 훑어본 후에 파일인지 아닌지를 판단해야 하기 때문에, 파일이라면 절대 경로를 목록에 저장할 수 있습니다. 여기에서 두 가지 일을 더 해야 합니다.
file_lst = []
for i in glob.glob(dir_path + '/**/*', recursive=True):
if os.path.isfile(i):
file_lst.append(i)
이전 단계에서 우리는 목표 폴더 아래의 모든 파일 경로를 얻었고, 그 다음에 이 경로 목록을 훑어볼 수 있습니다filecmp.cmp
서류 판단을 하고.os.remove
파일 삭제
for x in file_lst:
for y in file_lst:
if x != y:
if filecmp.cmp(x, y):
os.remove(y)
이곳의 코드는 이미 대체적인 논리를 실현했지만, 한 가지 세부 사항은 고려해야 한다. 파일이 이전의 판단에 의해 삭제되었기 때문에 순환될 수 있다는 것이다os.remove(file)
파일이 존재하지 않아 오류를 보고합니다.그래서 os를 사용할 수 있다.path.exists는 다음과 같이 파일의 존재를 판단합니다.
for x in file_lst:
for y in file_lst:
if x != y and os.path.exists(x) and os.path.exists(y):
if filecmp.cmp(x, y):
os.remove(y)
이렇게 하면 간단한 파일 리셋 프로그램이 완성되고 전체 코드는 다음과 같다.
import os
import glob
import filecmp
dir_path = r'C:\xxxx'
file_lst = []
for i in glob.glob(dir_path + '/**/*', recursive=True):
if os.path.isfile(i):
file_lst.append(i)
for x in file_lst:
for y in file_lst:
if x != y and os.path.exists(x) and os.path.exists(y):
if filecmp.cmp(x, y):
os.remove(y)
마지막에 쓰다본고의 Python 자동화 스크립트 제작 과정을 통해 우리는 Python 사무 자동화의 강함을 다시 한 번 느낄 수 있다
Python으로 컴퓨터 안의 중복 파일을 자동으로 청소하는 것에 관한 이 글은 10줄 코드만 있으면 여기에 소개됩니다. 더 많은 관련python이 중복 파일을 자동으로 청소하는 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.