2012-02-28 2 views
4

나는 python으로 디렉토리를 가져 와서 dir의 모든 파일을 포함하는 "ls -lR"과 유사한리스트를 만들 수있는 코드를 찾고있다. 그리고 하위 디렉토리. 날짜, 최종 수정 날짜, 사용 권한, 사용자 등을 포함한 표 형식으로 표시됩니다.리눅스에서 파이썬의 파일과 디렉토리

또한 디렉터리와 하위 디렉터리에있는 모든 파일의 총 크기입니다.

시간, 크기 및 권한에 대한 통계를 사용했으며 테이블을 만든 목록에 동일한 정보를 추가했습니다. 하지만 파일 이름, 파마, 소유자 및 그룹을 찾으려면. 내가 청결한 코드를 얻을 수 있다면? 당신은 파이썬 2.X를 사용하는 경우

+1

지금 정확히 뭐하고 있니? 'os.walk()'+'os.stat()'? –

+0

os.listdir (".")도 도움이 될 수 있습니다. – 01100110

+0

나는 파일 형식을 표 형식으로 저장할 수있는 재귀 적 방법을 찾고 있었다. – simplycurious

답변

3

당신은 사용할 수 있습니다 : 파이썬 3.0

commands.getoutput("ls –lR") 

당신이 시도 할 수 있습니다 :

subprocess.check_output("ls -lR") 

는 희망이 도움이!

편집

Commands.getoutput 및 subprocess.check_output 당신이 매개 변수로 사용되는 명령의 출력을 반환합니다.

예는 :

lslr = commands.getoutput("ls –lR") 
print lslr 

이 현재 디렉토리에 -lR 당신에게 LS와 완전히 동일한 출력을 제공 할 것입니다. 그런 다음 필요에 따라 필터링하십시오.

현재 디렉토리를 변경하려면 os.chdir (/ desired/dir)을 사용하십시오.

+0

이것은 터미널에서 직접 사용하지만 .py 파일에 하나를 넣고 싶습니다. – simplycurious

+0

py 파일에이 파일을 추가하십시오! 내 대답을 업데이트했습니다! – caiocpricci2

5

파일을 재귀 적으로 트래버스하려면 os.walk을 사용할 수 있습니다. 그러면 필요한 모든 파일 이름을 알 수 있습니다.

일단 파일 이름이 있으면 os.stat을 계속 사용하여 사용자 및 그룹 ID를 얻을 수 있습니다. 권한에 관해서는 표준 라이브러리를 사용하여 직접 가져올 수있는 방법이 없다고 생각하지만 os.access을 사용하여 사용 권한을 하나씩 테스트하여 어떤 라이브러리가 설정되어 있는지 확인할 수 있습니다.

+0

필자는 모든 파일을 읽을 수 있다고 말하면서 파일 속성을 지정하는 다른 열이있는 테이블 형식을 저장할 수 있어야합니다. – simplycurious

+0

문제는 재귀를 사용할 수 있는지 모르겠다. – simplycurious

+1

표 형식으로 저장하려면 ['csv' 모듈] (http://docs.python.org/library/csv.html)을 사용할 수 있습니다. 표준 라이브러리에서. 재귀에 관해서는'os.walk'가 당신을 위해 그것을 할 것이기 때문에 걱정할 필요가 없습니다. – jcollado

1

os.stat를 jcollado가 언급 한 디렉토리로 트래버스 할 수 있으며 검색 패턴을 사용하여 검색하려면 해당 디렉토리에 glob을 사용하십시오.

0
import os 


def iterbrowse(path): 
    for home, dirs, files in os.walk(path): 
     for filename in files: 
      yield os.path.join(home, filename) 


for full_name in iterbrowse("/root"): 
    print full_name 
+0

이 질문에 답할 수도 있지만 코드에 대한 설명과 초기 문제를 해결하는 이유에 대한 간단한 설명을 추가하십시오. – user1438038

관련 문제