2012-10-31 2 views
0

오늘 내 파일로 간단한 정리 작업을 수행하기 위해 두 개의 짧은 스크립트를 작성했습니다. One은 파일 이름의 공백을 밑줄로 바꾸고 디렉토리의 모든 파일과 폴더 이름을 읽고이를 txt 파일로 덤프합니다. 그러나 어느 쪽도 그만 두지 마라. 그들은 둘 다 for 루프로 끝나고, 분명히 끝났을 때 둘 다 깨지지 않는 이유를 알지 못합니다. quit()을 전달하면 스크립트는 내가 의도 한대로 수행하며 수동으로 중단해야합니다.두 개의 짧은 스크립트를 작성했으나 종료하지 않았습니다.

import os 

pathname = raw_input('Enter the pathname: ') 
os.chdir(pathname) 
filelist = os.listdir(pathname) 
outfile = [] 
for idx, val in enumerate(filelist): 
    outfile.append(val.replace(' ', '_')) 
    os.rename(val, outfile[idx]) 

그리고 디렉토리의 내용 리더 :

import os 

pathname = raw_input('What path\'s contents do you want listed? ') 
os.chdir(pathname) 
filelist = os.listdir(pathname) 
file = open('out.txt', 'w') 
for idx, val in enumerate(filelist): 
     file.write(val + '\n') 

내가 두 스크립트가 매우 비슷한 일을하기 때문에 그들이 유사한 이유로 파괴하지 않는 가정

다음은 밑줄 가산기입니다.

감사합니다.

+2

두 루프 모두에'print' 문을 넣으십시오. 당신은 그들이 단지 달리는 것이 아니라고 확신합니까? – Blender

+0

'pathname' 디렉토리로 이동 한 다음'pathname'의 내용을 나열합니다. 그러나 아마도 당신이 디렉토리를 변경 한 이후로 다른 디렉토리 일 것입니다 (절대 경로 만 전달하지 않는 한?) – mgilson

+0

고마워요! 루프의 끝 부분에있는 print 문이 작동했습니다. – SciurusDoomus

답변

0

대답은 간단합니다. 양쪽 모두에서 루프가 끊어진 후에 print 문을 추가하면됩니다. 간단한 수정. Blender에게 감사의 말을 전합니다.

관련 문제