1

複数の大きなフォルダー (> 10 Gb、> 100 サブフォルダー、> 2000 ファイル) をネットワーク ドライブ間で移動しようとしています。Python で shutil.copytree コマンドを使用してみましたが、さまざまな理由で小さな割合 (< 1 % のファイル) をコピーできないことを除いて正常に動作します。

転送プロセスを記録したログファイルを作成できるので、robocopy が最適なオプションだと思います。ただし、1000 個を超えるフォルダーをコピーする必要があるため、手作業は問題外です。

したがって、私の質問は基本的に、ログファイルが外部ファイルに書き込まれていることを確認して、Python スクリプト内から robocopy (つまり、コマンド ライン) を呼び出す方法です。

私は Windows 7 環境で作業していますが、Linux/Unix は組織の制限により問題外です。非常に多くのフォルダを柔軟に一括コピーするための他の提案があれば、歓迎します。

4

5 に答える 5

9

サブプロセスを使用すると、システム コールを作成できます。これにより、コマンド ラインから行う場合と同じように robocopy を呼び出すことができます。

from subprocess import call
call(["robocopy", "basefolder newfolder /S /LOG:mylogfile"])
于 2012-10-31T15:54:50.823 に答える
1

os.exec関数ファミリーのいずれかを使用して、外部プログラムを開始します。

おそらくあなたが欲しいos.execlp(file, arg0, arg1, ...)

于 2012-10-31T15:51:52.470 に答える