PCããã䜿ã人ãªãã宿çã«ç¹å®ã®äžèŠãã¡ã€ã«ãåé€ããããšããå Žé¢ãããããšã ããããããã¯ãã¢ããªãäœãããã¯ã¢ãããã¡ã€ã«ã§ãã£ããããã£ãã·ã¥ãã¡ã€ã«ã®é¡ãå€ãã ãããããã§ããããã®ãã¡ã€ã«ã宿çã«åé€ããããŒã«ãèªäœããŠã¿ãããèªäœããŒã«ã«ããŠããã°ã现ããã«ã¹ã¿ãã€ãºèšå®ãã§ããã
Pythonã§ç¹å®ã®ãã¡ã€ã«ãåé€ããæ¹æ³
ããã§ã¯ãããŒã«ãäœãåã«ãPythonã§ç¹å®ã®ãã¡ã€ã«ãåé€ããæ¹æ³ã確èªããŠãããããã¡ã€ã«ããã©ã«ããåé€ããã¢ãžã¥ãŒã«ã¯ãæšæºã¢ãžã¥ãŒã«ã®äžã€ã§ãããosãã ã
ãã¡ã€ã«ãåé€ããã®ããos.remove(ãã¡ã€ã«ãã¹)ãã ãäŸãã°ã/path/to/test.txtããåé€ããããã°ã©ã ã¯ã次ã®ããã«ãªãã
import os
os.remove("/path/to/test.txt")
ã¡ãªã¿ã«ããos.unlink(ãã¡ã€ã«ãã¹)ãã§ãåãã ã
ãWindowsã®å Žåã®æ³šæã
ãšããã§ãWindowsã®å ŽåãPythonã®ããã°ã©ã äžã«ãã¡ã€ã«ãã¹ãèšè¿°ããå Žåãæ³šæãå¿ èŠãšãªãããšèšãã®ããWindowsã®ãã¹ã®åºåãèšå·ã®ãÂ¥ãã¯ãPythonã§ã¯æååã®ãšã¹ã±ãŒãæåã衚ãããã®ãããWindowsã®ãã¡ã€ã«ãã¹ãèšè¿°ããå ŽåãåºåãæåããÂ¥ãã§ã¯ãªãã㥥ããšäºåéããŠæžãå¿ èŠãããã
äŸãã°ãkujiraãšãããŠãŒã¶ãŒã®ãã¹ã¯ãããäžã«ãããtest.txtããšãããã¡ã€ã«ãåé€ããã®ã§ããã°ã次ã®ããã«æå®ããå¿ èŠãããã
import os
os.remove("c:¥¥Users¥¥kujira¥¥Desktop¥¥test.txt")
次ã«ã空ã®ãã©ã«ãïŒãã£ã¬ã¯ããªïŒãåé€ããæ¹æ³ãèŠãŠã¿ããããããããos.rmdir(ãã©ã«ããã¹)ãã ãäŸãã°ã/path/to/emptyããšãããã©ã«ããåé€ããããã°ã©ã ã¯ã次ã®ããã«ãªãã
import os
os. rmdir("/path/to/empty")
ãã ãã空ã®ãã©ã«ãã§ãªããã°åé€ã§ããªãã®ã§æ³šæããããããããã¡ã€ã«ã®å ¥ã£ããã©ã«ããåé€ãããå Žåã«ã¯ãäžåºŠããã©ã«ã以äžã®ãã¡ã€ã«ãå šéšåé€ããŠãããos.rmdir()ã§ãã©ã«ããåé€ããå¿ èŠãããã
ãšã¯èšããããã¯é¢åãªã®ã§ããã©ã«ãã空ã§ãªããŠãåé€ãã颿°ãçšæãããŠãããããããPythonæšæºæ·»ä»ã®shutilã¢ãžã¥ãŒã«ã®ãshutil.rmtree(ãã©ã«ããã¹)ãã ãäŸãã°ããã¡ã€ã«ãå ¥ã£ãŠããã/path/to/kesitaiããšãããã©ã«ããäžžããšåé€ããããã°ã次ã®ãããªããã°ã©ã ãèšè¿°ããã
import shutil
shutil.rmtree("/path/to/kesitai")
ãã ãããã¡ã€ã«ããã©ã«ãã®å®å šåé€ãè¡ã颿°ãªã®ã§ãåãæ±ãã«ã¯æ°ãã€ãããããã¡ããã芪åã«ãåé€ããŠãè¯ãã§ããïŒããªã©ã®ãã€ã¢ãã°ã¯å šã衚瀺ãããªãã©ãããããŽãç®±ã«å ¥ãããšããªãã
å®å šåé€ããã®ã§ã¯ãªããŽãç®±ã«å ¥ããã
ãããããã£ãã倧åãªãã¡ã€ã«ãæ¶ããŠããŸããšãã倱æãé¿ããããã«ã¯ãäžèšã®é¢æ°ã䜿ã£ãŠå®å šã«ãã¡ã€ã«ãåé€ããŠããŸãã®ã§ã¯ãªããåé€ãšåæã«ããããŽãç®±ã«å ¥ãããã«ããããšããå Žåãããã ããããã®å Žåã«ã¯ãSend2Trashãšããã©ã€ãã©ãªã䜿ããWindowsã«ãmacOSã«ã察å¿ããŠããã®ã§ãå®å¿ããŠäœ¿ããã
Send2Trashãã€ã³ã¹ããŒã«ããã«ã¯ãã³ãã³ãã©ã€ã³ãéããŠãpipã³ãã³ãã䜿ãã
# Send2Trash ã®ã€ã³ã¹ããŒã«
pip install Send2Trash
ãªããWindowsã®Anacondaç°å¢ã§ããã°ããAnaconda PromptããéããŠã³ãã³ããå®è¡ãããããŸããAnacondaæªå°å ¥ã®macOSãªããäžèšã³ãã³ãã®pipãpip3ã«çœ®ãæããŠå®è¡ããå¿ èŠããããæè¿ã§ã¯ãå€ãã®ç°å¢ã§ãPython3ãããã©ã«ãã«ãªã£ãŠããŠããã®ã§ãpipãpythonã®ããã«ããŒãžã§ã³çªå·ãçç¥ããŠèšè¿°ã§ããããã«ãªã£ãŠããã
ããŠãSend2Trashã®ã€ã³ã¹ããŒã«ãã§ããããæ¬¡ã®ãããªããã°ã©ã ãæžãããšã§ãã/path/to/kesitaiãã®ãã©ã«ããåé€ããŠãŽãç®±ã«å ¥ããããšãã§ããã
from send2trash import send2trash
send2trash('/path/to/kesitai')
次ã®ç»åã¯ãããã°ã©ã ãå®è¡ãããšããã ã
ç¹ã«ãèªäœããŒã«ãPythonã§äœãå Žåã«ã¯ããããªããã¡ã€ã«ãæ¶ããŠããŸãããããããã°ã©ã ãäœãæã«ãèšè¿°ãã¹ãèæ ®ããŠãSend2Trashã䜿ããšå®å¿ã ããã転ã°ã¬å ã®æã ã
äžèŠãã¡ã€ã«ãäžæ°ã«åé€ããããŒã«ãäœãã
ããã§ã¯ãäžèŠãã¡ã€ã«ãäžæ°ã«åé€ããããŒã«ãäœã£ãŠã¿ãããããã§äœãã®ã¯ãæå®ãã©ã«ã以äžã«ããå šãŠã®äžèŠãã¡ã€ã«ãäžæ°ã«åé€ãããããªãã®ãäœã£ãŠã¿ããã
äžèŠãã¡ã€ã«ã¯ã䜿ã£ãŠããã¢ããªã«ãã£ãŠç°ãªãããä»åã¯ãäžè¬çãªãã£ãã·ã¥ãã¡ã€ã«ãããã¯ã¢ãããã¡ã€ã«ã察象ãšããŠåé€ãããã®ã«ããããWindowsãªãThumbs.dbãmacOSãªã.DS_Storeãäžè¬çãªããã¯ã¢ãããã¡ã€ã«ã®åœ¢åŒã.bakããšã.tmpãã®åœ¢åŒã察象ã«ããŠã¿ããã
以äžã®ããã°ã©ã ããäžèŠåé€.batããšããååã§ä¿åãããããããŠã(ïŒ1)ã§æå®ããŠããPythonã®ã€ã³ã¹ããŒã«ãã¹ãæžãæãããããããç°å¢å€æ°ã®PATHã«Pythonãç»é²ããŠãããªããåã«ãpython.exeããšæå®ã§ãããã ããæè¿ã§ã¯ãããã©ã«ãã§ã¯ãPythonã®ã€ã³ã¹ããŒã«æã«ç°å¢å€æ°ãæžãæããªãèšå®ã«ãªã£ãŠããã®ã§ããã®å Žåã«ã¯ããã£ãããšæ£ãããã¹ãæå®ããå¿ èŠãããã
REM = r""" âPythonãã¹ãæå® --- (*1)
SET PYTHON_EXE="c:\Users\kujira\Anaconda3\python.exe"
%PYTHON_EXE% %0 %1
PAUSE
EXIT
"""
# === 以äžãPythonã®ããã°ã©ã === --- (*2)
import os, sys
from glob import glob
from send2trash import send2trash
# pattern --- (*3)
pattern_list = [
"**/Thumbs.db",
"**/.DS_Store",
"**/*.bak",
"**/*.tmp"
]
# --- ã©ã®ãã©ã«ããåŠçãããæ±ºãã --- (*4)
root_dir = os.path.abspath(os.path.dirname(__file__))
if len(sys.argv) > 1:
root_dir = sys.argv[1]
os.chdir(root_dir)
print("---")
print("åé€å¯Ÿè±¡ãã©ã«ã =", root_dir)
print("---")
# ãã¿ãŒã³ã«å¿ããŠãã¡ã€ã«ãååž°çã«åé€ --- (*5)
for pattern in pattern_list:
files = glob(pattern, recursive=True)
for f in files:
print("ãŽãç®±è¡ã: ", f)
send2trash(f)
}}}
Windowsã§ããã°ã©ã ãå®è¡ããã«ã¯ãããããã¡ã€ã«ããã©ã«ãã«ã³ããŒããäžã§ããã«ã¯ãªãã¯ããããç¹å®ã®ãã©ã«ããããããã¡ã€ã«ã«ãã©ãã°ãããã
ãªããmacOSã§ã¯ã以äžã®ããã«ããŠãã³ãã³ãã©ã€ã³ããããŒã«ãå®è¡ã§ããã(Anacondaæªå°å ¥ã®macOSã§ã¯ãpythonã®ãšããããpython3ã«çœ®ãæããŠå®è¡ãããã)
python äžèŠåé€.bat (察象ãã©ã«ããã¹)
ããã§ã¯ãããã°ã©ã ãèŠãŠã¿ããã(ïŒ1)ã®éšåã¯Windowså°çšã®ã³ãŒãã§ãããããã¡ã€ã«ããPythonãèµ·åããã³ãŒãã ããããŠã(ïŒ2)以äžã®éšåãå®éã®Pythonã®ããã°ã©ã ãšãªãããã®ããã«ãã¡ãã£ãšä»æããäœããšãããããã¡ã€ã«ã®äžã«Pythonããã°ã©ã ãèšè¿°ããããšãã§ããã
ãããŠã(ïŒ3)ã®éšåã§ã¯ãåé€ãããã¿ãŒã³ãæå®ãããglob()颿°ã§ãrecursive=Trueã®ãªãã·ã§ã³ã远å ããå Žåãååž°çã«ãã¡ã€ã«ãåæã§ããããã®å ŽåããïŒïŒ/Thumbs.dbãã®ããã«æå®ããããã®ãã¿ãŒã³ã倿Žããããšã§ãä»»æã®åœ¢åŒã®ãã¡ã€ã«ãåé€ã§ããããã«ãªãã(ïŒ4)ã®éšåã§ã¯ãã©ã®ãã©ã«ããåŠçãããæ±ºå®ããŸãã(ïŒ5)ã®éšåã§ãå®éã«åé€å¯Ÿè±¡ã®ãã¡ã€ã«ãåæããŠãsend2trash()颿°ã§ãã¡ã€ã«ãåé€ããã
ãŸãšã
以äžãä»åã¯ãã¡ã€ã«ããã©ã«ããåé€ããæ¹æ³ã玹ä»ããå®éã«äœ¿ããäžèŠãã¡ã€ã«ã®åé€ããŒã«ãäœã£ãŠã¿ãã宿çã«ãäžèŠãã¡ã€ã«ãåé€ããŠãããªãããã®ããã«ãããããã¡ã€ã«ãäœã£ãŠãæè»œã«åé€ã§ããããã«ããŠãããšäŸ¿å©ã ããã¡ãããåçŽãªã«ãŒã«ã§ããã°ãPythonã䜿ããªããŠãè¯ãã®ã ããPythonãå©çšããããšã§ãåé€ãããã¡ã€ã«ããŽãç®±ã«å ¥ãããã«ããããããè€éãªã«ãŒã«ã§æ¯ãåãããããã§ããããã«ãªããä»åã®ããã°ã©ã ãåèã«ããŠãPythonãä»äºã§æŽ»çšãããã
èªç±åããã°ã©ããŒããããã¯ãã©ã«ãŠãããã°ã©ãã³ã°ã®æ¥œãããäŒããæŽ»åãããŠããã代衚äœã«ãæ¥æ¬èªããã°ã©ãã³ã°èšèªããªã§ããã ãããã¹ã鳿¥œããµã¯ã©ããªã©ã2001幎ãªã³ã©ã€ã³ãœãã倧è³å ¥è³ã2004幎床æªèžãŠãŒã¹ ã¹ãŒããŒã¯ãªãšãŒã¿èªå®ã2010幎 OSSè²¢ç®è ç« åè³ãæè¡æžãå€ãå·çããŠããã

