2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでローカルのファイルを操作するときによく使う関数メモ

Last updated at Posted at 2019-08-02

ファイル、ディレクトリ操作でよく使う機能を自分用にメモしておきます。
適宜書き足してく予定です。

確認環境

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番めの引数にファイル名だけ書くと '. /' に移動しちゃうので注意

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?