よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

Python/ディレクトリやファイル基本操作方法

この記事は、

・QPyNotebookで作成したipynbファイルを、
・termuxで$ jupyter nbconvert ○○.ipynb --to markdownコマンドを使ってmdファイルに変換し、
・そのmdファイルをはてなブログアプリにコピペ
して出来たものです。

内容的には、Pythonのファイル検索やディレクトリの操作方法を書いています。

以下が、mdファイルのコピペ貼り付け部分。


目次

カレントディレクトリ取得

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']