ホームページ  >  記事  >  バックエンド開発  >  考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

PHPz
PHPz転載
2023-04-12 12:52:031438ブラウズ

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

#ふと思ったのですが、USB を接続すると、USB 上のプログラムを自動的に実行できないでしょうか。調べてみるとWindowsのみで、詳細は検索(検索キーワードus​​b autorun)することもできます。ただし、たとえば、USB が接続されているときに、USB 内の重要なファイルが自動的にローカルにコピーされるか、バックグラウンドで誰にも気付かれずにサーバーにアップロードされるようにしたい場合は、特別なソフトウェアの支援が必要です。

#そこで私は、Python でプログラムを作成してバックグラウンドで実行できるようにできないかと考えました。 USB フラッシュ ドライブを挿入すると、その中の重要なファイルが自動的にコピーされます。

#U ディスクが挿入されているかどうかを確認する方法は?

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

##まず、コンピューターのターミナルを開き、/ Volumes ディレクトリに入ります。このとき、USB フラッシュ ドライブを挿入すると、このディレクトリの下にマウントされていることがわかります。つまり、このディレクトリを一定時間スキャンするだけで済みます。時間が経過し、このディレクトリに新しいフォルダーが表示された場合は、USB フラッシュ ドライブが挿入されている可能性が高くなります。

私の設計は次のようなものです。time.sleep(3) 関数を使用してプログラムを実行し続け、3 秒ごとに /Volumes/ ディレクトリをチェックします (存在する場合)。は余分なフォルダーなので、別のフォルダーにコピーします。

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

タイトルが示すように、実際に使用したのは 10 行だけです (実際には全体を構成するのに 11 行です:)この「ウイルス」はもう終わりです。 USB に挿入してから 30 分後には、USB 内のディレクトリがすべてホーム ディレクトリに配置されていることがわかります。

ファイルを選択的にコピーするにはどうすればよいですか?

非常に単純なスクリプトを作成してテストしました。このアイデアは次のとおりです。実現可能ですが、まだ問題があります。 USB フラッシュ ドライブ内のすべてのファイルをすぐにコピーできたのは、USB フラッシュ ドライブ内にファイルが 2 ~ 3 つしかなく、サイズが 15M を超えなかったためです。ターゲット USB ディスクに必要のない映画、音楽、ファイルが多数ある場合、プログラムはそれらをスキップし、.docx (.ppt ファイルなど) などの重要なものだけを選択するか、最近使用したファイルのみをコピーできる必要があります。変更されたファイルを削除するか、サイズが 5M を超えるすべてのファイルを除外します。 Python で実行できますか? もちろんです。

#例を挙げてみましょう。

#特定のディレクトリに testwalk フォルダーを作成しました。file123.txt とフォルダー 123 の 3 つのファイルがあります。フォルダー 1 にはファイル file4 があります。.txt とフォルダー 4

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。##さあ、テストしましょう

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。root は現在の場所を保存します。./testwalk/ の下にあるすべてのフォルダーをルート ディレクトリとして使用し、下方向に検索します。

##ディレクトリを個別に表示

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

##ファイルを個別に表示

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

#

さて、USB フォルダーを再帰し、すべてのファイルを見つけてサイズを確認し、たとえば 3M より小さい場合はホームにコピーし、大きい場合はホームにコピーする必要があります。それを捨ててください。

#shutil module

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

##次に、先ほど作成したフォルダーを取り上げます。たとえば、file1.txt をフォルダー 2 にコピーする場合:

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

ここでは利用できないツールが多数あります。シュティル。

os.path.getsize() はサイズを決定します

#os.path.getsize(file name) が返すファイルサイズの確認に使用する場合は、読みやすい形式に変換する関数を手動で記述する必要があります。

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

ここでは、3M 未満のファイル サイズを選択するだけです (3M = 3 * 1024kB = 3 * 1024*) 1024byte

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

shutil.copy2 と組み合わせると、選択したサイズのファイルをターゲット フォルダーにコピーできます

ファイルの種類を指定する方法

#ここでは正規表現が必要です。

正規表現の内容は数多くあり、「Python コア プログラミング」では 1 章全体を費やしているため、詳しくは説明しません。 。

#次のように、指定されたファイル接尾辞と指定されたファイル サイズをターゲット ファイルにコピーできるようにします。

##re をインポートすることを忘れないでください

より複雑な正規表現を使用して、ファイルの種類をより適切に指定します

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

変更時刻に基づいてファイルをフィルタリングする

この時点では、ファイルを作成しましたディレクトリ ファイルの名前は newfile

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

#つまり、各ファイルの変更時刻をフィルタリングすると、最近、または特定の期間に変更または追加されたファイル。この機能は特定の状況で役立ちます。

考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。

概要

実は、このタイトルはみんなの注意を引くためのものです。これは小さなプログラムです。ウイルスは言うまでもありません。

#この例を使用して、ファイルを処理する Python の強力な能力を示し、学習に対するみんなの熱意を呼び起こしたいと思います。

上記の実装は macos に基づいていますが、Linux も同様であるはずです。Windows でもわずかな変更を加えれば成功する可能性があります。上記のテクニックは学習専用であり、他の動作には使用しないでください。

以上が考えると恐ろしいです。USB フラッシュ ドライブを接続し、Python コードの実行を開始します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。