Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで隠しファイルと隠しフォルダーを削除する方法

隠しファイルの判定方法

Unix系OS(macOS、Linuxなど)では、隠しファイルは「.」(ドット)で始まるという命名規則があるため、Pythonのstartswith()メソッドを使ったシンプルな判定でフィルタリングできます。

一方、Windowsではファイル名だけでは判断できません。win32apiモジュールを使ってファイル属性を取得し、「隠しファイル」または「システムファイル」属性が設定されているかどうかを確認する必要があります。これらのモジュールはpywin32パッケージに含まれているため、事前にインストールしておきましょう。

サンプルコード

以下のコードを実行すると、カレントディレクトリ内のすべての隠しファイルを削除できます。

import os
if os.name == 'nt':
    import win32api, win32con

def file_is_hidden(p):
    if os.name == 'nt':
        attribute = win32api.GetFileAttributes(p)
        return attribute & (win32con.FILE_ATTRIBUTE_HIDDEN | win32con.FILE_ATTRIBUTE_SYSTEM)
    else:
        return p.startswith('.')  # Linux / macOS

[os.remove(f) for f in os.listdir('.') if file_is_hidden(f)]

コードの解説

  • OS判定os.name == 'nt'で実行環境がWindowsかどうかを判別し、Windowsの場合のみwin32apiwin32conをインポートします。
  • file_is_hidden()関数:WindowsではGetFileAttributes()で属性を取得し、隠し属性(FILE_ATTRIBUTE_HIDDEN)またはシステム属性(FILE_ATTRIBUTE_SYSTEM)が設定されているかをビット演算で確認します。Unix系OSでは、パス名が「.」で始まるかどうかだけで判定できます。
  • 削除処理:最後の行はリスト内包表記を使い、カレントディレクトリ('.')内の隠しファイルそれぞれに対してos.remove()を実行しています。

注意点

os.remove()による削除は元に戻せないため、実行前に削除対象を十分に確認してください。また、このコードはファイルのみが対象です。隠しフォルダーを削除したい場合は、shutil.rmtree()を併用する必要があります。Windows環境で実行する際は、あらかじめpip install pywin32でpywin32をインストールしておくことを忘れないようにしましょう。

  1. Windows 10で隠しファイル・隠しフォルダを表示する3つの方法

    オンライン環境において、大切なファイルを他人の目から守ることは非常に重要です。しかし、「隠したはずのファイルが見つからなくなってしまった」「隠しファイルの中身を確認したい」といった経験はありませんか? 実は、Windows 10には「隠しファイル」や「隠しフォルダ」という宝箱のような機能が備わっています。この記事では、Windows 10で隠しファイルや隠しフォルダを表示する方法を、初心者の方にもわかりやすく解説します。 それでは早速見ていきましょう! 方法1:エクスプローラーで隠しファイルを表示する 最も手軽なのが、この方法です。ファイルやフォルダの表示を管理しているのは「エクスプローラー

  2. Windows 10 PCで空のファイルとフォルダを簡単に削除する方法

    パソコンのメンテナンスが重要な時代へ 近年、パソコンのメンテナンス(保守管理)への関心が高まっています。「パソコンは一度購入すれば長く使えるもの」ではなく、適切にメンテナンスすることで何年も快適に使い続けられるという認識が広まってきたためです。パソコンのメンテナンスには、主に以下のような項目があります。 マルウェアなどの潜在的な脅威の駆除 ジャンクファイル・一時ファイルの削除 空のファイルとフォルダの削除 利用履歴などの痕跡を消してプライバシーを保護 不要なアプリケーションのアンインストール 大容量ファイルや古いファイルの整理 本記事では、これらの中から「空のファイルと空のフォルダの削除」