インポートするライブラリ
import os
os.path.exists("./example/example.txt")
True #存在する
False #存在しない
os.path.exists("./example")
True #存在する
False #存在しない
os.path.isfile("./example/example.txt")
True #ファイルである
os.path.isfile("./example")
False #ファイルでない
os.path.isfile("./example/example.csv")
False #ファイルがない
os.path.isdir("./example")
True #ディレクトリである
os.path.isfile("./example/example.txt")
False #ディレクトリでない
os.path.isfile("./example")
False #ディレクトリがない
カレントディレクトリからの相対ディレクトリ、もしくは絶対ディレクトリで指定
os.mkdir('example_dir')
os.mkdir('./example_dir')
os.mkdir('/home/user/example_dir')
親ディレクトリもまとめて生成したい場合
os.makedirs('/parent_dir/child_dir')
所有権
| 意味 | |
|---|---|
| 自分(Owner) | ファイル/ディレクトリの所有者、本人のこと |
| グループ(Group) | 同じサーバーを利用できるユーザ全体 |
| 他人(Other) | その他全て、第三者のこと |
実行権
| ファイル | ディレクトリ | |
|---|---|---|
| 読み | 指定したファイルの内容を表示する | リストの表示可能 |
| 書き | ファイルの上書き、削除 | ディレクトリに新規ファイル作成可能 |
| 実行 | 実行ファイルの実行(プログラム、CGIなど) | カレントディレクトリにすることができる |
読み」「書き」「実行」の3つの実行権は以下の記号または数字で表される。
| 記号 | 数字 | |
|---|---|---|
| 読むことができる (Readable) | r | 4 |
| 書くことができる (Writable) | w | 2 |
| 実行することができる (eXecutable) | x | 1 |
| なにもできない | - | 0 |
os.chmod( path, mode,…)
| cmd | 挙動 |
|---|---|
| copyfile | メタデータはコピーされず、ファイル作成日は新規 |
| copy | メタデータはコピーされず、ファイル作成日は新規 |
| copy2 | メタデータがコピーされ、ファイル作成日も保持 |
使用するライブラリ
import shutil
使用例
shutil.copyfile("./example.txt", "./example2.txt")
shutil.copy("./example.txt", "./example2.txt")
shutil.copy2("./example.txt", "./example2.txt")
新たにディレクトリを作成してコピー
shutil.copytree("./example", "./example2")
この時に、コピー先のディレクトリがあるとエラーが出る。
os.mkdir(""./example2")
shutil.copytree("./example", "./example2")
OSError: [Errno 17] File exists: './example2'
そういう場合はインポート
from distutils.dir_util import copy_tree
copy_tree("./example", "./example2")
os.remove("./example2.txt")
os.rmdir("./example")
shutil.rmtree("./example")