Pythonスクリプトがファイルを移動できるように、ダウンロードしたトレントファイルのダウンロードが完了したかどうかを確認します


1

あるフォルダーから別のフォルダーにいくつかのファイルを移動できるスクリプトをPythonで作成しました。これは、ファイルが静的なときにオンになります。私の問題は、トレントプログラムがまだファイルをダウンロードしているため、ファイルが「不完全」な場合に発生します。

「移動」操作を実行する前に、ファイルが不完全/まだダウンロードされている場合、どのようにPythonで確認できますか?そのファイルで操作を実行するのを待つ必要があることを知っていますか?

なぜなら、スクリプトを実行してもファイルがまだダウンロードされているのであれば、破損したファイルを移動することになりますが、これはあまり良くありません。

だから、ファイルがPythonで変更されているかどうかをどのように知ることができますか?

トレントクライアントとして、Tixatiを使用しています。


ほとんどの優れたBitTorrentクライアントには、部分ファイルの末尾にまたはを付ける.part.!ut、ダウンロード後にスクリプトを実行するオプションがあります。
grawity

Tixatiでこのオプションを見つけることができませんでした(つまり、部分的なファイルのサフィックスに)。私が考えることができる1つのソリューションは、「ディレクトリファイルへのファイルを完了」オプションを使用することです...しかし、大きなファイルをダウンロードする場合、それは多くのhddファイルを移動することになります。
Con7e 14年

HDDがどれだけ耐えられるかに驚くでしょう。データのチャンクの移動(ほとんどは順次読み取りと書き込み)は比較になりません。ただし、パーティション内でファイルを移動しても、データは移動さません。古いディレクトリからファイルが削除され、新しいディレクトリに追加されるだけです。
grawity

1
はい。ディレクトリ構造は、ディスク上のデータの物理的な場所とはまったく関係がありません。ファイルにデータを書き込むと、OSは適切な空き領域を見つけた場所にデータを置きます。///最も基本的なレベルでは、「ディレクトリ」にはファイルへポインタのリストがあります。同様に、「ファイル」には、実際のデータブロックへのポインタのリストがあります。ファイルを移動すると、OSは古いディレクトリを更新してそのファイルへのポインターを削除し、新しいディレクトリを更新して同じファイルにポインターを追加します。ファイル自体は変更されていません。
grawity

1
これは、同じパーティション内で移動/名前変更を行う場合にのみ適用されます。もちろん、同じディスク上または異なるパーティション上に複数のパーティションがある場合(例:C:+ D:+ E:または/+ /home+ /mnt/movies)、それぞれ独立した構造を持ち、データが必要ですあるパーティションから別のパーティションに実際に移動されます。(あなたは2枚のディスク間の巨大なファイルを移動した場合でも、再び、それは1から単純なシーケンシャルリードだし、他に書き込むことがランダムシークよりも少し小さいディスクを株。。)
grawity

回答:


1

完了時にファイルを移動するためにpythonスクリプトを使用する必要はありません。
ほとんどのBitTorrentクライアントは、設定すれば自動的にこれを行うことができます。
この方法で行う利点は、クライアントがトレントのシードを継続できることです。

Tixatiでは、次の2つの方法で実行できます。

  • Tixati設定 > 転送 > ローカルファイルを開きます
    アクティブ化:完了したら、次の場所に移動します。

または

  • トレントを選択します。
    [ オプション ]タブを開きます。
    有効化:完了したら、次の場所に移動します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.