Help us understand the problem. What is going on with this article?

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

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

確認環境

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away