2011-12-21 1 views
0

안녕하세요 메신저 내 .opt.php 파일에 대한 컴파일에 대한 검색에서 일을하고 있어요.파이썬은 glob와 파일 폴더 위치 및 파일을 얻을

현재이

for x in glob.glob(PATH_VIEWS + '*.opt.php'): 

    # Get file names 
    segment1 = x.split('/') 
    filename = segment1[-1] 
    realname = filename.split('.opt.php') 
    appfolder = segment1[-4] 
    folder = segment1[-2] 

    ''' ../../../views/users/index.opt.php 
    ['..', '..', '..', 'views', 'users', 'index.opt.php'] 
    index.opt.php 
    ['index', ''] 
    ''' 

같은 일을 메신저이 할 수있는 더 좋은 방법은 무엇입니까? 내가

파일 이름 index.opt.php 같이하고 파일이 기본 이름을 얻고 싶다면 ../../../views/users 사용자

+0

'PATH_VIEWS'란 무엇입니까? 찾고있는 디렉토리 이름이 아닌가? – eumiro

+0

이 경우 변수는 ../../../views/입니다. 무엇을 찾고 있는지는 ../../../views/[*]/filename 사각형에있는 이름입니다. –

+0

예. 메신저가 디렉토리 이름을 찾고 있습니다. 이 cae 사용자. –

답변

2

을에 있고 dirname이 당신이 (os.path.split을 사용할 수 있습니다이 예에에있는 폴더를 좀하고 싶습니다) :

http://docs.python.org/library/os.path.html#os.path.split

BTW : 디렉토리 깊이가 고정되어있는 경우 글로브()에만 작동합니다. unix "find"명령 (재귀 적 디렉토리 워크)과 같은 것을 원하면 os.walk()를 사용하십시오.

import os, glob 
magic='.log' 
for file in glob.glob(os.path.join(mydir, '*%s' % magic)): 
    dirname, filename = os.path.split(file) 
    base=filename[:-len(magic)] # if you use this very often, it is faster to use a variable "len_magic" 
    print dirname, base 
+0

* % s의 사용법은 어떻습니까? 그리고 baout os.walk에서 예를 들어 주시겠습니까? 정말 고마워요, 메신저 아직도 어떻게 마법 작품 : –

+1

"마법"은 단지 변수 이름입니다. 나는 그것도 "지루한"이름을지었습니다. 로그 파일을 사용하여 스크립트를 테스트했습니다. 파일 확장자가 다릅니다. 문서는 http://docs.python.org/library/os.html#os.walk에 있습니다. – guettli