Python/ディレクトリやファイル基本操作方法
この記事は、
・QPyNotebookで作成したipynbファイルを、
・termuxで$ jupyter nbconvert ○○.ipynb --to markdown
コマンドを使ってmdファイルに変換し、
・そのmdファイルをはてなブログアプリにコピペ
して出来たものです。
内容的には、Pythonのファイル検索やディレクトリの操作方法を書いています。
以下が、mdファイルのコピペ貼り付け部分。
目次
- カレントディレクトリ取得
- ファイルの絶対パス取得
- ファイルのあるディレクトリの絶対パス
- ファイルの絶対パスからベースネーム(最後の/以降のtail部分)を取り出す
- カレントディレクトリの移動
- カレントディレクトリを上の階層に移動
- カレントディレクトリを移動
- カレントディレクトリのファイルやフォルダ名を取得(リスト型)
- ファイルの判別。
- フォルダの判別
- ディレクトリの作成
- ファイルの検索
カレントディレクトリ取得
import os
os.getcwd()
'/storage/emulated/0/qpython/notebooks'
ファイルの絶対パス取得
os.path.abspath('__file__')
'/storage/emulated/0/qpython/notebooks/__file__'
ファイルのあるディレクトリの絶対パス
os.path.dirname(os.path.abspath('__file__'))
'/storage/emulated/0/qpython/notebooks'
ファイルの絶対パスからベースネーム(最後の/以降のtail部分)を取り出す
path="storage/emulated/0/qpython/scripts3/hello_world.py"
os.path.basename(path)
'hello_world.py'
カレントディレクトリの移動
os.chdir(os.path.dirname(os.path.abspath('__file__'))) # カレントディレクトリ確認 os.getcwd()
'/storage/emulated/0/qpython/notebooks'
カレントディレクトリを上の階層に移動
os.chdir('../') ## カレントディレクトリ確認 os.getcwd()
'/storage/emulated/0/qpython'
カレントディレクトリを移動
os.chdir('/storage/emulated/0/qpython/notebooks') ## カレントディレクトリ確認 os.getcwd()
'/storage/emulated/0/qpython/notebooks'
カレントディレクトリのファイルやフォルダ名を取得(リスト型)
os.listdir()
['Welcome.ipynb',
'.ipynb_checkpoints',
'QPythonNotebook.ipynb',
'out.ipynb',
'out.html',
'ブログテスト.ipynb']
ファイルの判別。
ファイルならTrue
それ以外ならFalse
# カレントディレクトリの中身を取得 lists = os.listdir() print(lists) ## ファイルかどうか確認 for i in lists: print(os.path.isfile(i))
['Welcome.ipynb', '.ipynb_checkpoints', 'QPythonNotebook.ipynb', 'out.ipynb', 'out.html', 'ブログテスト.ipynb']
True
False
True
True
True
True
フォルダの判別
フォルダならTrue
それ以下ならFalse
# カレントディレクトリの中身を取得 lists = os.listdir() print(lists) ## フォルダかどうか確認 for i in lists: print(os.path.isdir(i))
['Welcome.ipynb', '.ipynb_checkpoints', 'QPythonNotebook.ipynb', 'out.ipynb', 'out.html', 'ブログテスト.ipynb']
False
True
False
False
False
False
ディレクトリの作成
os.makedirs("フォルダ名") ## できたか確認 print(os.listdir())
['Welcome.ipynb', '.ipynb_checkpoints', 'QPythonNotebook.ipynb', 'out.ipynb', 'out.html', 'ブログテスト.ipynb', 'フォルダ名']
ファイルの検索
リスト型
import glob import re import os ## カレントディレクトリ内の拡張子txtのファイルを検索する場合 lists = glob.glob('./*.ipynb') print(lists)
['./Welcome.ipynb', './QPythonNotebook.ipynb', './out.ipynb', './ブログテスト.ipynb']