このエラーで他の質問を見ただけで重複していないようにしてください。フォルダのスキャン中にさまざまなエラーが発生する
私は、与えられたディレクトリをスキャンし、90日以上経過したすべてのサブディレクトリを削除する基本的なスキャナを作っています。ここでは、コードは次のようになります。ここでは
import os, sys
import time
import shutil
from Tkinter import *
import Tkinter, Tkconstants, tkFileDialog
now = time.time()
home1 = os.path.join(os.environ["HOMEPATH"], "Desktop")
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
root = Tk()
root.withdraw()
path = tkFileDialog.askdirectory(initialdir=desktop, title="Select folder to scan from: ")
path = path.encode('utf-8')
for x in os.walk(path):
for folders in x:
while os.stat(folders).st_mtime < now - 90 * 86400:
q = raw_input('Folder(s) found. NOTE: This will delete all directories or subdirectories in the folder. Do you want to remove?(y/n) ')
if str(q) == "y" or str(q) == "Y":
shutil.rmtree(path, ignore_errors=True)
print 'Successfully deleted folder(s)'
elif str(q) == "n" or str(q) == "N":
print 'Folders not deleted.'
sys.exit()
else:
print 'No folder(s) over 90 days'
はフルトレースバックです:
Traceback (most recent call last):
File "C:/Users/Bill/Desktop/limitScanner/scanner.py", line 20, in <module>
while os.stat(folders).st_mtime < now - 90 * 86400:
TypeError: coercing to Unicode: need string or buffer, list found
編集:私は、デスクトップフォルダなど、複数のサブフォルダを持つフォルダに私のプログラムを使用する場合、それは私に次のようになりますエラー:WindowsError: [Error 2] The system cannot find the file specified
と最初のフォルダの名前。
私はpython 2.7.13
を使用しています。誰でも助けてくれますか?どんな助けも広く評価されています。
このプログラムを実行すると、私のプログラムはフリーズしているようです。 – Bill
@Billこれは 'while'ループで止まっています。代わりに* if *ブロックを使うべきです。 –