1. ホーム
  2. python

Python - ファイルやフォルダの移動と上書き

2023-10-01 23:19:40

質問

ファイルやフォルダーがあるディレクトリ 'Dst ディレクトリ' と、同じくファイルやフォルダーがある 'src ディレクトリ' があります。src ディレクトリ」の内容を「Dst ディレクトリ」に移動し、同じ名前のファイルがあれば上書きしたいのです。例えば、'Src Directory'の内容を'Dst Directory'に移動して、既存のfile.txtを上書きする必要があります。いくつかのフォルダについても同様で、フォルダを移動して、'dstディレクトリ'にある同じフォルダと内容をマージする必要があります。

現在、shutil.move を使って src の内容を dst に移動していますが、ファイルがすでに存在する場合は実行されず、フォルダのマージも行われず、既存のフォルダの中にフォルダが置かれるだけです。

更新: 物事をもう少し明確にするために、私が行っていることは、アーカイブを Dst ディレクトリに解凍し、Src ディレクトリのコンテンツをそこに移動して再解凍し、効果的に zip アーカイブ内のファイルを更新することです。これは、新しいファイルや新しいバージョンのファイルなどを追加するために繰り返されます。

解決しました。これは、src ディレクトリから dst ディレクトリにフォルダとファイルをコピーし、必要な箇所を上書き/マージします。これが何人かの人々の助けになることを願っています。

ご理解いただけたでしょうか。 ありがとうございます!

どのように解決するのですか?

使用方法 copy() を使うことで、保存先のファイルを上書きすることができます。もし、最初のツリーを消したい場合は、単に rmtree() としてください。

http://docs.python.org/library/shutil.html#shutil.copy

http://docs.python.org/library/shutil.html#shutil.rmtree

更新しました。

を行う。 os.walk() をソースツリー上で実行します。各ディレクトリについて、宛先側に存在するかどうかをチェックし、 その上で os.makedirs() を実行します。各ファイルについて、単に shutil.copy() で、ファイルが作成されるか上書きされるかのどちらかになります。