##はじめに
あるフォルダー以下の全ファイルの拡張子を一括変換する方法が知りたく、
いくつかの別記事も参考にしながらPythonで作成してみました。
自分の備忘として残します。
##前提
現在、フォルダー「pikapika」の下に「d202202」というフォルダーがあり、
その配下に20220201,20220202,20220203の3つのファイルが存在しています。
#####VisualStudieCode内で見ると
※「Qiita共有用.py」は実際のコードを記述するファイルです。
#####通常のエクスプローラから見ると
今回はこの3つのファイルを「テキストファイル」(拡張子は.txt)に
一括変換していきます。
##実際のコード
#今回使用するpathlibライブラリをインポート
from pathlib import Path
#変換したいファイルが含まれるフォルダーを指定
folder = 'pikapika/d202202'
#変数folder以下にあるすべてのファイルの拡張子を.txtへ変更
for f in Path(folder).rglob('*'):
f.rename(folder + f.stem + '.txt')
##実行後
#####VisualStudieCode内で見ると
#####通常のエクスプローラから見ると
うーん。。なぜか元々いたフォルダー「d202202」と並列の位置に変換後のファイルが用意されている…
ちなみに元々変換前のファイルが存在していた「d202202」以下は、空っぽになってしまいました。
可能であれば、変換後のファイルも元々の場所に展開されてほしかったのですが・・・
今後は、変換後のファイルの展開先指定が可能かどうかも調べてみます。
(今回は目的通り拡張子の一括変換ができたため、いったんは良しとします)
####補足
今回変換したかったのは、フォルダー「d202202」以下の「すべてのファイル」であったため、rglob('*')
としています。
そのため例えば、あるフォルダー以下の「テキストファイル」(拡張子.txt)を別の拡張子ファイルへと一括変更したい場合は、rglob('.txt')
と記述すればOKです。
##参考
「拡張子一括変換」https://qiita.com/int_main_void/items/a241eebd3e440ca4fdfe
「Pythonでファイル拡張子を一気に変換(os & pathlib)」https://note.com/tomtom_0301/n/nc1a54a632132
##余談
初めてのQiita投稿。間違っている部分やあまり宜しくない表記があった場合は、ご指摘いただけると有難いです。
QiitaのMarkdown記法、初心者には難しいですが便利で面白いですね~
参考:「Markdown記法 チートシート」https://qiita.com/Qiita/items/c686397e4a0f4f11683d