2009-06-08 3 views
0

이 특히이 라인에있다 ('시스템은 지정된 경로 찾을 수 없습니다'3) WindowsError를 얻을 :장고와 창에 내가

filesys = os.listdir(settings.CAPTCHA_ROOT) 

읽거나 디렉터리에 쓰기를 시도하는 경우가 발생합니다.

Windows에서만이 작업을 수행하는 이유는 무엇입니까?

편집 ---------------------------------------

def __clean_captchas(self, offset=3600): 
     """docstring for __clean_captchas""" 
     filesys = os.listdir(settings.CAPTCHA_ROOT) 
     offset = datetime.datetime.now() - datetime.timedelta(seconds=offset) 
     for file in filesys: 
      d = datetime.datetime.fromtimestamp(os.stat(settings.CAPTCHA_ROOT+file).st_ctime) ... 
      if d < offset: 
       os.remove(settings.CAPTCHA_ROOT+file) 
+0

설정을 인쇄 해 보았습니까? 충돌 이전에 로그에 CAPTCHA_ROOT을 (를) 시도 했습니까? 그것은 아마도 최고의 통찰력을 제공 할 것입니다. – workmad3

+0

나는 이것을 시험해 봐야 할 것이다, 만약 내가 멍청한 사람이라면 나에게 용서해라. 그러나 위의 – Rasiel

+0

을 기록하는 방법이 확실치 않다. CAPTCHA_ROOT에 + 파일을 추가하면 에러가 발생한다. – Rasiel

답변

1

설정 .CAPTCHA_ROOT가 잘못되었습니다. 휴대용 경로의 경우 슬래시와 백 슬래시를 사용하지 말고 대신 os.path.join 함수를 사용해야합니다. like :

import os 
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__)) 
CAPTHA_ROOT = os.path.join(PROJECT_PATH,'some','sub','folders') 
+0

감사합니다! 한 행을 건너 뛰고 이제 다음 줄에서 오류를 무시하십시오.filesys : d = datetime.datetime.fromtimestamp (os.stat (settings.CAPTCHA_ROOT + file) .st_ctime) ... d < offset : os.remove (settings.CAPTCHA_ROOT + file) – Rasiel

+0

그래서 settings.CAPTCHA_ROOT + 파일 대신 os.path.join (settings.CAPTCH_ROOT, file)을 사용해보십시오. 설정 값을 인쇄하면 도움이됩니다 .CAPTCH_ROOT. 후행 슬래시가 있습니까? –

+0

위대한 작품이 os.remove()를 시도 할 때 "액세스가 거부되었습니다."라는 메시지가 나타나고 권한을 변경하는 창이 열리지 않습니다. 이걸 알아 내야 할 것입니다.하지만 모든 도움에 감사드립니다. – Rasiel

0

디렉토리를 상수 문자열로 지정하고 슬래시 대신 백 슬래시를 사용하여 경로를 작성하는 경우 원시 문자열을 사용해야합니다. 예 :

CAPTCHA_ROOT = r'D:\captcha' 
+0

나는 이것을 시도, 여전히 작동하지 않았다 – Rasiel