2012-01-25 5 views
5

파일 유형에 따라 파일을 이동하여 데스크탑을 정리하는 스크립트를 작성하고 있습니다. 첫 번째 단계는 ls -1 /Users/user/Desktop (Mac OSX)입니다. 그래서 파이썬을 사용하여 어떻게 명령을 실행 한 다음 출력을 특정 디렉토리의 파일에 기록합니까? 이것은 문서화되지 않을 것이고, 유일한 사용자가 될 것입니다. os.system()을 사용하면 괜찮습니까 (선호합니까?).파일에 명령 줄 출력을 작성하십시오.

+0

어떤 파일을 이동 하시겠습니까? Python을 사용하는 파일 작업에 대해서는 http://docs.python.org/library/shutil.html을 참조하십시오. –

+0

셸 스크립트로 충분합니다. –

+1

셸 스크립트를 사용하는 경우 파이프 및 리디렉션에 대해 자세히 읽어보십시오. –

답변

13

명령에서 >을 사용하여 표준 출력을 모든 파일로 리디렉션 할 수 있습니다. 당신이 ls 명령을 사용하는 대신 다음 파이썬을 사용하는 경우 파이썬을 사용하여

$ ls /Users/user/Desktop > out.txt 

,

os.system('ls /Users/user/Desktop > out.txt') 

그러나 디렉토리의 모든 파일을 나열 os.listdir를 사용할 수 있습니다. 쉘 명령을 실행하고 check_output 방법으로 subprocess 모듈을 사용할 수있는 출력을 얻기 위해 파이썬 문서를 감추고 후

path = '/Users/user/Desktop' 
files = os.listdir(path) 
print files 
+0

좋은 친구. 고맙습니다. – Daniel

+0

ImportError : system이라는 모듈이 없습니다. –

+0

@ Suda.nese 어떻게 수입하려고합니까? 파이썬 버전은 무엇입니까? – taskinoor

4

.

그런 다음 표준 파이썬 IO 함수 인 File IO in python을 사용하여 출력을 파일에 간단하게 쓸 수 있습니다.

1

파일을 열려면 f = open(/Path/To/File) 명령을 사용할 수 있습니다. 구문은 f = open('/Path/To/File', 'type')이고 여기서 'type'은 읽기 용 r, 쓰기 용 w 및 추가 용 a입니다. 이 작업을 수행 할 명령은 f.read()f.write('content_to_write')입니다. 명령 줄 명령에서 출력을 얻으려면 os.system() 대신 popen 및 subprocess를 사용해야합니다. os.system()은 값을 반환하지 않습니다. 자세한 내용은 popoe here에서 확인할 수 있습니다.

관련 문제