2017-05-10 9 views
0

1つのフォルダから別のフォルダに移動したいファイルがいくつかあります。何らかの理由でそれらのファイルのいずれかが動かなくなった場合は、移動してもらえません。基本的には、すべてのファイルを移動するか、移動しないでください。私はこれを近似した論理を書くことができましたが、そうする前に、これを行うためのネイティブのPythonやUnixの方法がありますか?状況は、ソリューションが既に存在していると私はそれを聞いていないことが十分に頻繁に来ると考えています。ファイルをPythonでトランザクションとして移動するには?

+0

'mv'はすでにこれを行っていますが、電力損失を防ぐことはできませんが、まだ部分ファイルが残ります – Natecat

+0

ファイルを移動できなかった理由を列挙できますか?それらを列挙することができれば、ファイルを移動する前にその理由を確認することができ、すべてのファイルが移動されるかどうかを確かめることができます。 –

+0

私はそれらを列挙できません。私は何らかの予期せぬ理由でファイルを移動できない場合に私を安全にしてくれる何かを探しています。 – Eli

答えて

0

PythonもUnixも、複数のファイルに対するアクションのトランザクションの概念を持っていません。

ディスクパーティションでの移動では、mvコマンドは、同じinodeを使用してディレクトリエントリを更新するだけで、ファイルは実際には移動しません(移動中に失敗するリスクはありません)。

ディスクを移動する場合は、ターゲットドライブ上の一時ディレクトリになり、すべてのファイルをコピーしてください。それについては、mvを実行してください。これは、ある程度の保護を提供するでしょう。

関連する問題