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

Pythonのジャンクファイルオーガナイザー?


これは、ほとんどのファイルとフォルダーを1つの場所に保持し、すべてのファイルが何であるか混乱することがあり、手動でそれを行うには怠惰すぎるPythonプログラマーにとって非常に役立つように思われるかもしれません。以下は、適切なフォルダ内のすべてを1回で整理または簡略化して、空のディレクトリを削除するPythonプログラムです。

したがって、さまざまなタイプのファイルが多数存在するディレクトリパスがあり(以下のように)、プログラムは各ファイルタイプをそれぞれのフォルダに分離します(以下のように)。

入力フォルダの構造

Pythonのジャンクファイルオーガナイザー?

必要な出力

Pythonのジャンクファイルオーガナイザー?

まず、さまざまなフォルダに分離するファイルの種類に基づいて、さまざまなフォルダを作成します。

DIRECTORIES = {
   "HTML": [".html5", ".html", ".htm", ".xhtml"],
   "IMAGES": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg",
   ".heif", ".psd"],
   "VIDEOS": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng",
   ".qt", ".mpg", ".mpeg", ".3gp"],
   "DOCUMENTS": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods",
   ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
   ".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt",
   "pptx"],
   "ARCHIVES": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z",
   ".dmg", ".rar", ".xar", ".zip"],
   "AUDIO": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3",
   ".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
   "PLAINTEXT": [".txt", ".in", ".out"],
   "PDF": [".pdf"],
   "PYTHON": [".py"],
   "XML": [".xml"],
   "EXE": [".exe"],
   "SHELL": [".sh"]
}

次に、ファイルタイプのマップをそれぞれのフォルダに作成します。

FILE_FORMATS = {file_format: directory
   for directory, file_formats in DIRECTORIES.items()
   for file_format in file_formats}
def organise_folder():
   for entry in os.scandir():
      if entry.is_dir():
         continue
      file_path = Path(entry)
      file_format = file_path.suffix.lower()
      if file_format in FILE_FORMATS:
         directory_path = Path(FILE_FORMATS[file_format])
         directory_path.mkdir(exist_ok=True)
         file_path.rename(directory_path.joinpath(file_path))

   try:
      os.mkdir("OTHER-FILES")
   except:
      pass

   for dir in os.scandir():
      try:
         if dir.is_dir():
            os.rmdir(dir)
         else:
            os.rename(os.getcwd() + '/' + str(Path(dir)), os.getcwd() + '/OTHER-FILES/' + str(Path(dir)))
      except:
pass

最終スクリプト:

以上が、ファイルタイプをそれぞれのフォルダにフィルタリングするための最終的なスクリプトです。

#Python Lazy Junk Files Organizer

#Import important libraries
import os
from pathlib import Path

#
DIRECTORIES = {
   "HTML": [".html5", ".html", ".htm", ".xhtml"],
   "IMAGES": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg",
   ".heif", ".psd"],
   "VIDEOS": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng",
   ".qt", ".mpg", ".mpeg", ".3gp"],
   "DOCUMENTS": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods",
   ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
   ".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt",
   "pptx"],
   "ARCHIVES": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z",
   ".dmg", ".rar", ".xar", ".zip"],
   "AUDIO": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3",
   ".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
   "PLAINTEXT": [".txt", ".in", ".out"],
   "PDF": [".pdf"],
   "PYTHON": [".py"],
   "XML": [".xml"],
   "EXE": [".exe"],
   "SHELL": [".sh"]
}

FILE_FORMATS = {file_format: directory
   for directory, file_formats in DIRECTORIES.items()
   for file_format in file_formats}

def organise_folder():
   for entry in os.scandir():
      if entry.is_dir():
         continue
      file_path = Path(entry)
      file_format = file_path.suffix.lower()
      if file_format in FILE_FORMATS:
         directory_path = Path(FILE_FORMATS[file_format])
         directory_path.mkdir(exist_ok=True)
         file_path.rename(directory_path.joinpath(file_path))
   try:
      os.mkdir("OTHER-FILES")
   except:
      pass

   for dir in os.scandir():
      try:
         if dir.is_dir():
            os.rmdir(dir)
         else:
            os.rename(os.getcwd() + '/' + str(Path(dir)), os.getcwd() + '/OTHER-FILES/' + str(Path(dir)))
      except:
         pass
if __name__ == "__main__":
   organise_folder()

特定のディレクトリパスから上記のスクリプトを実行すると、次のような出力が得られます。

出力

Pythonのジャンクファイルオーガナイザー?


  1. Pythonを使用したWebサイトブロッカー

    大規模なIT企業で働いている場合は、その2つのWebサイト、特にFacebook、YouTube、Instagramなどのソーシャルネットワーキングサイトがブロックされていることに気付くかもしれません。 サードパーティのアプリケーションを使用して特定のWebサイトをブロックする代わりに、選択したWebサイトをブロックする独自のカスタムアプリケーションを開発できます。PythonでWebサイトブロッカーを開発することもそれほど難しくありません。それが私たちがやろうとしていることです-私たちが望むウェブサイトをブロックするPythonスクリプトを開発します。 前提条件: Python3.xが

  2. Pythonの誕生日リマインダーアプリケーション

    このセクションでは、Pythonを使用して誕生日のリマインダーアプリケーションを作成する方法を説明します。 問題の説明 Pythonを使用してアプリケーションを作成します。このアプリケーションは、当日の誕生日があるかどうかを確認できます。リストに載っている人の誕生日の場合は、その人の名前でシステムに通知を送信します。 このアプリケーションのルックアップファイルとして、日付と月、および人の名前を保存できるファイルが必要です。ファイルは次のようになります- ここでは、このアプリケーションをスタートアップアプリケーションに変換して、システムの起動時に起動します。 誕生日リマインダーアプリケ