#ふと思ったのですが、USB を接続すると、USB 上のプログラムを自動的に実行できないでしょうか。調べてみるとWindowsのみで、詳細は検索(検索キーワードusb autorun)することもできます。ただし、たとえば、USB が接続されているときに、USB 内の重要なファイルが自動的にローカルにコピーされるか、バックグラウンドで誰にも気付かれずにサーバーにアップロードされるようにしたい場合は、特別なソフトウェアの支援が必要です。
#そこで私は、Python でプログラムを作成してバックグラウンドで実行できるようにできないかと考えました。 USB フラッシュ ドライブを挿入すると、その中の重要なファイルが自動的にコピーされます。
#U ディスクが挿入されているかどうかを確認する方法は?私の設計は次のようなものです。time.sleep(3) 関数を使用してプログラムを実行し続け、3 秒ごとに /Volumes/ ディレクトリをチェックします (存在する場合)。は余分なフォルダーなので、別のフォルダーにコピーします。
タイトルが示すように、実際に使用したのは 10 行だけです (実際には全体を構成するのに 11 行です:)この「ウイルス」はもう終わりです。 USB に挿入してから 30 分後には、USB 内のディレクトリがすべてホーム ディレクトリに配置されていることがわかります。
ファイルを選択的にコピーするにはどうすればよいですか?
非常に単純なスクリプトを作成してテストしました。このアイデアは次のとおりです。実現可能ですが、まだ問題があります。 USB フラッシュ ドライブ内のすべてのファイルをすぐにコピーできたのは、USB フラッシュ ドライブ内にファイルが 2 ~ 3 つしかなく、サイズが 15M を超えなかったためです。ターゲット USB ディスクに必要のない映画、音楽、ファイルが多数ある場合、プログラムはそれらをスキップし、.docx (.ppt ファイルなど) などの重要なものだけを選択するか、最近使用したファイルのみをコピーできる必要があります。変更されたファイルを削除するか、サイズが 5M を超えるすべてのファイルを除外します。 Python で実行できますか? もちろんです。
#例を挙げてみましょう。
#特定のディレクトリに testwalk フォルダーを作成しました。file123.txt とフォルダー 123 の 3 つのファイルがあります。フォルダー 1 にはファイル file4 があります。.txt とフォルダー 4
##さあ、テストしましょう
root は現在の場所を保存します。./testwalk/ の下にあるすべてのフォルダーをルート ディレクトリとして使用し、下方向に検索します。
##ディレクトリを個別に表示
さて、USB フォルダーを再帰し、すべてのファイルを見つけてサイズを確認し、たとえば 3M より小さい場合はホームにコピーし、大きい場合はホームにコピーする必要があります。それを捨ててください。
##次に、先ほど作成したフォルダーを取り上げます。たとえば、file1.txt をフォルダー 2 にコピーする場合:
ここでは利用できないツールが多数あります。シュティル。
os.path.getsize() はサイズを決定しますここでは、3M 未満のファイル サイズを選択するだけです (3M = 3 * 1024kB = 3 * 1024*) 1024byte
shutil.copy2 と組み合わせると、選択したサイズのファイルをターゲット フォルダーにコピーできます
ファイルの種類を指定する方法
正規表現の内容は数多くあり、「Python コア プログラミング」では 1 章全体を費やしているため、詳しくは説明しません。 。
#次のように、指定されたファイル接尾辞と指定されたファイル サイズをターゲット ファイルにコピーできるようにします。
##re をインポートすることを忘れないでください
変更時刻に基づいてファイルをフィルタリングする
#つまり、各ファイルの変更時刻をフィルタリングすると、最近、または特定の期間に変更または追加されたファイル。この機能は特定の状況で役立ちます。
概要
#この例を使用して、ファイルを処理する Python の強力な能力を示し、学習に対するみんなの熱意を呼び起こしたいと思います。
上記の実装は macos に基づいていますが、Linux も同様であるはずです。Windows でもわずかな変更を加えれば成功する可能性があります。上記のテクニックは学習専用であり、他の動作には使用しないでください。
以上が考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。