1. ホーム
  2. python

[解決済み] Pythonでファイルを移動するには?

2022-03-18 03:03:39

質問

Pythonを調べました。 os インターフェイスを使用していますが、ファイルを移動するメソッドを見つけることができませんでした。と同等のことをするにはどうすればよいのでしょうか? $ mv ... をPythonで作成することはできますか?

>>> source_files = '/PATH/TO/FOLDER/*'
>>> destination_folder = 'PATH/TO/FOLDER'
>>> # equivalent of $ mv source_files destination_folder

解決方法は?

os.rename() , os.replace() または shutil.move()

すべて同じ構文を採用しています。

import os
import shutil

os.rename("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
os.replace("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
shutil.move("path/to/current/file.foo", "path/to/new/destination/for/file.foo")

なお、ファイル名( file.foo ) を、source と destination の両方の引数で指定します。これが変更されると、移動だけでなく、ファイル名も変更されます。

また、最初の2つのケースでは、新しいファイルが作成されるディレクトリがすでに存在していなければならないことに注意してください。Windowsでは、その名前のファイルは存在してはならないし、存在しなければ例外が発生しますが os.replace() は、そのような場合でも、黙ってファイルを置き換えます。

他の回答のコメントでも指摘されているように shutil.move を呼び出すだけです。 os.rename を使用します。ただし、コピー先がコピー元と異なるディスクにある場合は、代わりにコピー元のファイルをコピーして削除します。