Pythonのファイル操作を改めて。削除、リストアップ、移動

スポンサーリンク

pythonでファイル操作を行う準備

pythonファイルの冒頭で。

import os
import shutil
スポンサーリンク

pythonでファイルの削除、移動、ファイルリスト

os.listdir(‘path’)はfor文と一緒に使う。引数のpathはつかわなくてもよい。この場合はカレントディレクトリのファイルがリストになる。

os.remove(‘filename’)はファイルを削除する。os系のメソッドは意外に柔軟で文字列を渡すと、そのファイルが削除される

shutil.move(‘oldpat’, ‘newpath’)これでファイルを移動できる。移動もカレントディレクトリ基準になっているためフルパスを書く必要がない。

専門家から見ると文句がとんできそうな解説ではある。再帰できるwalk()についてはここでは触れない

ファイル操作のサンプルコード

とりあえずこれ見れば、忘れても思い出す。

import send2trash, os, shutil

os.chdir("C:\\users\\xxxxxx\\desktop")

print("\n")
endfilename = input("endfilename?: ")
print("your input key = " + "'" + endfilename + "'")
print("\n")

i = input("commpres?(c) trash?(t) exit?(e)")

if i == "c":
    os.mkdir(endfilename)
    for filename in os.listdir():
        if os.path.isfile(filename):
            if filename.endswith("." + endfilename):
                shutil.move(filename, os.path.join(os.getcwd(), endfilename))

if i == "t":
    trashfiles = []
    for filename in os.listdir():
        if os.path.isfile(filename):
            if filename.endswith("." + endfilename):
                trashfiles.append(filename)
    print(trashfiles)
    while True:
        yn = input('trash? yes(y) no(n)')
        if yn == "y":
           [send2trash.send2trash(tf) for tf in trashfiles]
        if yn == "n":
            break

if i == "e":
    print("ByeBye!!!")

windowsでデスクトップにいると仮定。最初にファイルの拡張子を入力し、該当拡張子のファイルを新しいフォルダにまとめるか、ゴミ箱に送るかを選択できるようにした。ゴミコードだがリハビリにはいいかもしれない。

ちなみにsend2trashはファイルをゴミ箱に送るモジュールだ。os.remove()を使ってもよいがこの場合はファイルが完全に削除される。

コメント

タイトルとURLをコピーしました