2012-01-27 3 views
0

회사 폴더에 여러 분기가 있고 분기마다 여러 사용자가 있습니다. 특정 사용자가 지사를 떠날 때이를 제거해야합니다. 오류는 발생하지 않지만 전체 분기 폴더는 지정된 사용자 폴더뿐만 아니라 삭제됩니다. 누군가가 당신의 rmtree() 호출과 같은 올바른 방향두 변수를 사용하여 폴더 내의 폴더 삭제

#!/usr/bin/python 
import os, sys, getopt, shutil 
branch, user = "","" 

if __name__ == "__main__": 
    argv = sys.argv[1:] 
    try: 
     opts, args = getopt.getopt(argv, 'hd:e', ['help', 'branch=', 'user=']) 
    except getopt.GetoptError: 
     print __doc__ 
     sys.exit() 

    for opt, arg in opts: 
     if opt in ('-h', '--help'): 
      print __doc__ 
      sys.exit() 
     if opt in ('-d', '--branch'): 
      branch = arg 
     if opt in ('-e', '--user'): 
      user = arg 

shutil.rmtree("/home/company/%s/%s" % (branch , user)) 
+0

'user' 변수가 설정되지 않는 것 같습니다. 명백한 체크 나 어설 션을 추가하여'user! = ""'인지 확인하십시오. – Amber

+0

이 모듈을 가져 오면이 들여 쓰기가있는 rmtree가 단순히 "/ home/company ///"전체 트리를 지울 것이므로 매우 재미있는 "어떻게하지 않는"예제가 있습니다. 예를 들어, 실수로 "import "을 대화 형 Python 콘솔 – jsbueno

+0

에 입력하는 경우 어떻게해야합니까? 필자의 코딩 기술은 미미합니다. 여기에 오류로 시행하고 있습니다. – user1173151

답변

0
  • 날 지점 수있는 것은 때 "주요"모드에서 잘못 들여 쓰기, 그것은 아마에만 실행해야합니다. 모듈이로드 될 때마다 항상 branchuser이 비어있는 상태로 실행됩니다. 이것은 위험한 것처럼 보입니다.

  • rmtree()으로 전화하기 전에 실제로 옵션이 branchuser 인 지 확인해야합니다.

+0

다음과 같이 변경했지만 사용자의 마지막 % s이 (가) 무시되고 rmtree가 다음/home/company/% s 만 인식하는 것으로 보입니다. 어떤 아이디어? 사용자 폴더 만 삭제되도록 두 변수를 나열하는 다른 방법이 있습니까? – user1173151