>  기사  >  백엔드 개발  >  그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

PHPz
PHPz앞으로
2023-04-12 12:52:031418검색

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

갑자기 USB를 꽂으면 USB에 있는 프로그램이 자동으로 실행될 수 있을까 하는 생각이 들었습니다. 확인해보니 Windows에서만 가능하다는 것을 알았습니다. 자세한 내용은 usb autorun이라는 키워드로 검색해보시면 됩니다. 그러나 예를 들어 USB가 연결되면 USB의 중요한 파일이 자동으로 로컬에 복사되거나 백그라운드에서 아무도 모르게 서버에 업로드되도록 하려면 특별한 소프트웨어 지원이 필요합니다.

그래서 저는 파이썬으로 프로그램을 작성하고 백그라운드에서 실행시킬 수 있을까 생각했습니다. USB 플래시 드라이브를 삽입할 때마다 그 안의 중요한 파일이 자동으로 복사됩니다.

USB 플래시 드라이브가 삽입되었는지 확인하는 방법은 무엇입니까?

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

먼저 컴퓨터 터미널을 열고 /Volumes 디렉토리에 들어가면 USB 플래시 드라이브를 삽입할 수 있습니다. 즉, 지정된 시간에만 이 디렉터리를 검색하면 됩니다. 이 디렉터리에 새 폴더가 나타나면 USB 플래시 드라이브가 삽입되었을 가능성이 높습니다.

제 디자인은 이렇습니다. time.sleep(3) 함수를 사용하여 프로그램을 계속 실행하고, 3초마다 /Volumes/ 디렉터리를 확인하여 추가 폴더가 있으면 다른 폴더에 복사하세요.

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

제목에서 알 수 있듯이 우리는 이 "바이러스"를 완성하기 위해 실제로 10줄(실제로는 11줄, 전체 숫자를 구성함)만 사용했습니다. USB의 디렉토리는 삽입 후 30분 후에 모두 홈 디렉토리에 배치되는 것을 확인할 수 있습니다.

파일을 선택적으로 복사하는 방법은 무엇입니까?

이 아이디어의 타당성을 테스트하기 위해 매우 간단한 스크립트를 작성했지만 여전히 문제가 있습니다. USB 플래시 드라이브에 있는 모든 파일을 빠르게 복사할 수 있었던 이유는 USB 플래시 드라이브에 파일이 2~3개밖에 없었고, 크기도 15M를 넘지 않았기 때문입니다. 대상 USB 디스크에 필요하지 않은 영화, 음악 및 파일이 많이 있는 경우 프로그램은 이를 건너뛰고 .ppt 파일과 같은 .docx와 같은 일부 중요한 파일만 선택하거나 최근 항목만 복사할 수 있어야 합니다. 수정된 파일을 삭제하거나 크기가 5M보다 큰 모든 파일을 제외합니다. 물론 파이썬으로 할 수 있나요?

예를 들어보겠습니다.

특정 디렉터리에 testwalk 폴더를 만들었습니다. file123.txt라는 파일이 3개 있고, 폴더123에 file4.txt와 폴더4가 있습니다. it

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

root는 현재 위치를 저장합니다. ./testwalk/ 아래의 모든 폴더를 루트 디렉터리로 사용하고 아래로

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

만 검색합니다. 디렉토리 보기

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

파일을 개별적으로 보기

자, 이제 USB 폴더를 다시 찾아서 모든 파일을 찾아 크기를 확인하고, 3M처럼 작으면 집에 복사하고, 크면 버려야 합니다. shutil module ut 지금 폴더를 폴더에 복사하려면 지금 폴더를 가져 가자. 다른 도구는 여기서 자세히 다루지 않겠습니다.

os.path.getsize()는 크기를 결정합니다

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

os.path.getsize(파일 이름)는 파일 크기를 확인하는 데 사용되는 경우 값을 바이트 단위로 반환합니다. 쉽게 읽을 수 있는 형식으로 변환하는 함수를 작성하세요.

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

여기서는 3M보다 작은 파일 크기만 선택하면 됩니다. 3M = 3 * 1024kB = 3 * 1024*1024byte

il.copy2가 선택됨 다양한 크기의 파일이 대상 폴더에 복사됩니다

파일 형식을 지정하는 방법

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

여기서 우리를 도와줄 정규 표현식이 필요합니다.

정규식에는 많은 내용이 포함되어 있으며 "Python Core 프로그래밍"에서 전체 장이 이에 할애되어 있으므로 깊이 들어가지 않겠습니다.

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

다음과 같이 지정된 파일 접미사와 지정된 파일 크기를 대상 파일에 복사할 수 있습니다.

re를 가져오는 것을 잊지 마세요

더 사용하기 복잡한 정규 표현식을 사용하면 파일 유형을 더 잘 지정할 수 있습니다

수정 시간을 기준으로 파일 필터링

이 때 디렉터리에 newfile이라는 파일을 만들었습니다

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

간단히 말하면, 각 파일의 수정 시간을 필터링하면 최근 또는 특정 기간에 수정되거나 추가된 파일만 복사할 수 있습니다.

요약

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

사실 제목은 모두의 관심을 끌기 위한 작은 프로그램일 뿐이고 바이러스는 아닙니다.

저는 이 예를 사용하여 파일을 처리하는 Python의 강력한 능력을 보여주고 모든 사람의 학습 열정을 불러일으키고 싶습니다.

그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.

위 구현은 macos를 기반으로 한 것이며, Linux도 동일해야 하며 약간만 수정하면 Windows도 성공할 수 있습니다. 위의 기술은 학습용이므로 다른 행동에 사용해서는 안 됩니다

위 내용은 그것에 대해 생각하고 USB 플래시 드라이브를 연결하고 Python 코드 실행을 시작하는 것이 무섭습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제