特定のフォルダ内にあるファイルの名前を、ひとつのテキストにまとめてみよう
やりたいことを分解する
- 全ファイル名をテキストにしたいフォルダがどこか決める
- そのフォルダに移動する
- ファイル名を取得する
- テキストファイルに書き込む
プログラム化するヒント
外部ライブラリ glob / os
import
glob
glob.glob(‘*’)でパス名を取ってきます。
glob --- Unix 形式のパス名のパターン展開
ソースコード: Lib/glob.py glob モジュールは Unix シェルで使われているルールに従い指定されたパターンに一致するすべてのパス名を見つけ出します。返される結果の順序は不定です。チルダ展開は行われませんが、*,?, および[] で表現される文字範囲については正しくマッチされます。これは、関数 os.s...
os
色々な機能がありますが、こちらではchdirで対象のディレクトリに移動します。
os --- 雑多なオペレーティングシステムインターフェース
ソースコード: Lib/os.py このモジュールは、 OS 依存の機能を利用するポータブルな方法を提供します。単純なファイルの読み書きについては、 open() を参照してください。パス操作については、 os.path モジュールを参照してください。コマンドラインに与えられたすべてのファイルから行を読み込んでいくには...
Pythonでカレントディレクトリを取得、変更(移動) | note.nkmk.me
Pythonが実行されている作業ディレクトリ(カレントディレクトリ)を取得し確認、変更(移動)するには、os.getcwd()とos.chdir()を使う。 osモジュールは標準ライブラリに含まれているので追加のインストールは必要 ...
利用する主な関数
imput()
どのフォルダにあるファイル名をリスト化するか、指定します。
with open
ファイルを開いて、指定作業をしてから勝手に閉じてくれます。
write
ファイルに書き込みます。
str
文字列型に変換します。
for _ in__
繰り返しです。
JupyterLab等で考えて打ってみてください。
これ以上下がると解答が表示例されます。
ほんとにいいですか?
表示しますよ?
解答例
import glob
import os
targetdir = input('フォルダの場所を指定してください>>>') #エクスプローラ等から絶対パスを引っ張ってきてこぴぺしてもらいます
os.chdir(targetdir)
files = []
for filepath in glob.glob('*'):
files.append(str(filepath))
with open ('_result.txt','w') as f: #テキスト化したフォルダに _result が作られます
f.write("\n".join(files))
どうでしょう?解けたかな?
コメント