먼저 컴퓨터 터미널을 열고 /Volumes 디렉터리로 들어갑니다. 이때 U 디스크를 삽입하면 이 디렉터리 아래에 마운트된 것을 확인할 수 있습니다. 즉, 고정된 시간에만 이 디렉터리를 검색하면 됩니다. 이 디렉터리에 새 폴더가 나타나면 USB 플래시 드라이브가 삽입되었을 가능성이 높습니다.
내 디자인은 이렇습니다. time.sleep(3) 함수를 사용하여 프로그램을 계속 실행하고, 3초마다 /Volumes/ 디렉터리를 확인하여 추가 폴더가 있으면 다른 파일에 복사하세요.
제목에서 알 수 있듯이 우리는 이 "바이러스"를 완성하기 위해 실제로 10줄(실제로는 11줄, 전체 숫자를 구성함)만 사용했습니다. USB의 디렉토리는 삽입 후 30분 후에 모두 홈 디렉토리에 배치되는 것을 확인할 수 있습니다.
이 아이디어의 타당성을 테스트하기 위해 아주 간단한 스크립트를 작성했지만 여전히 문제가 있습니다. USB 플래시 드라이브에 있는 모든 파일을 빠르게 복사할 수 있었던 이유는 USB 플래시 드라이브에 파일이 2~3개밖에 없었고, 크기도 15M를 넘지 않았기 때문입니다. 대상 USB 디스크에 필요하지 않은 영화, 음악 및 파일이 많이 있는 경우 프로그램은 이를 건너뛰고 .ppt 파일과 같은 .docx와 같은 일부 중요한 파일만 선택하거나 최근 항목만 복사할 수 있어야 합니다. 수정된 파일을 삭제하거나 크기가 5M보다 큰 모든 파일을 제외합니다. 물론 파이썬으로 할 수 있나요?
예를 들어보겠습니다.
특정 디렉터리에 testwalk 폴더를 만들었습니다. file123.txt라는 세 개의 파일과 폴더123이라는 세 개의 폴더가 있습니다. 현재 위치를 사용하면 ./testwalk/ 아래의 모든 폴더를 루트 디렉터리로 사용하고
디렉토리를 개별적으로 보기
파일을 개별적으로 보기
shutil 모듈
이제 폴더를 예로 들어 보겠습니다. file1.txt를 폴더2로 복사하려는 경우:
os.path.getsize()는 크기를 결정합니다
os.path.getsize(파일 이름)는 파일 크기를 확인하는 데 사용되는 경우 이를 바이트 단위로 변환하는 함수를 수동으로 작성해야 합니다. 읽기 쉬운 형태. 여기서는 3M보다 작은 파일 크기만 선택하면 됩니다. 3M = 3 * 1024kB = 3 * 1024*1024byteshutil.copy2와 결합하면 선택한 크기의 파일을 다음으로 복사할 수 있습니다. 대상 폴더
파일 형식을 지정하는 방법
여기에는 정규 표현식이 필요합니다. 정규식에 관한 내용이 많고 "Python Core 프로그래밍"에서 전체 장이 이에 할애되어 있으므로 깊이 들어가지는 않겠습니다.다음과 같이 지정된 파일 접미사와 지정된 파일 크기를 대상 파일에 복사할 수 있습니다.
re를 가져오는 것을 잊지 마세요
파일 형식을 더 잘 지정하려면 더 복잡한 정규식을 사용하세요 수정 시간별 파일 필터링이때 디렉토리에 newfile이라는 파일을 생성했습니다
위 내용은 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!