ファイル、ディレクトリ操作でよく使う機能を自分用にメモしておきます。
適宜書き足してく予定です。
確認環境
Windows10
python == 3.6.3
jupyter notebook
ファイル一覧を出す
python
import os
os.listdir('../') # 引数に文字列でPATHを渡す
os.listdir() は返り値がlistなのでforで回したりできて便利
ファイル/フォルダがあるか確認
python
os.path.exists('../test.csv') # ファイルまたはフォルダが存在したらTrue
os.path.isfile('../test.csv') # ファイルが存在したらTrue、対象が存在しないかフォルダならFalse
os.path.isdir('../test') # フォルダが存在したらTrue、対象が存在しないかファイルならFalse
フォルダを作る
python
os.makedirs('../test') # 指定のPATHにフォルダを作る (すでにフォルダがあるとエラーになっちゃうので注意)
コピーする
ファイルをコピーする
python
import shutil
shutil.copy2('../test.csv', '../test/test.csv') # コピー元、コピー先の順で引数を与える(コピー先はフォルダでも可)
上書きされるかrenameされるかはちょっとややこしいようなのでドキュメントを参照
https://docs.python.org/ja/3/library/shutil.html
フォルダをコピーする
python
shutil.copytree('../test/', '../test2/') # コピー元フォルダ、コピー先フォルダの順で引数を与える
指定コピー元フォルダ内のすべてのフォルダとファイルをコピーしてくれてとても便利。でもコピー先フォルダが存在するとエラーが出ちゃうので注意。
移動する
ファイルを移動する
python
shutil.move('../test.csv', '../test/test.csv') # コピー元、コピー先の順で引数を与える(コピー先はフォルダでも可)
フォルダを移動する
python
shutil.copytree('../test/', '../test2/') # コピー元フォルダ、コピー先フォルダの順で引数を与える
shutil.rmtree('../test/')
削除する
ファイルを削除する
python
os.remove('../test/test.csv')
フォルダを削除する
python
shutil.rmtree('../test/')
フォルダ内のフォルダ、ファイルすべてを消去してくれて便利だけど、使うのちょっと怖い
ファイル/フォルダをrenameする
python
os.rename('../test.csv', '../test2.csv') # 元のファイルPATH、変更後のファイルPATHの順で引数で与える
renameというよりPATHの書き換えなので、2番めの引数にファイル名だけ書くと '. /' に移動しちゃうので注意