[解決済み] 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
を使用します。ただし、コピー先がコピー元と異なるディスクにある場合は、代わりにコピー元のファイルをコピーして削除します。
関連
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonコンテナのための組み込み汎用関数操作
-
Python Decorator 練習問題
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。