2010-05-28 5 views
0

나는 약 1000 개의 파일이있는 디렉토리가 있습니다.이 파일들 각각에 대해 같은 코드를 실행하고 싶습니다. ...디렉토리 및 파일 관련 의심?

내 코드는 파일 이름을 입력해야합니다.

은 내가 다른 형식으로 다른에 하나의 정보를 복사하는 코드를 작성했습니다 ... 파일 이름마다

을 변경할 필요없이 하나 모두 1000 개 파일 하나를 복사하는 방법을 제안하고 난하시기 바랍니다 1 파일이 30 개까지있는 경우 다음 다른 파일을 극복하면서 도움을 다시

필요한 0 ~ 30not에서

감사를 계속해야한다, 즉 연속 일 필요 필드 serial_num을 ..이

from string import Template 
from string import Formatter 
import pickle 
f=open("C:/begpython/wavnk/text0004.lab",'r') 
p='C:/begpython/wavnk/text0004.wav' 
f1=open("C:/begpython/text.txt",'a') 
m=[] 
i=0 
k=f.readline() 
while k is not '': 
    k=f.readline() 
    k=k.rstrip('\n') 
    mi=k.split(' ') 
    m=m+[mi] 
    i=i+1 

y=0 
x=[] 
j=1 
t=(i-2) 
while j<t: 
    k=j-1 
    l=j+1 
    if j==120 or j==i: 
     j=j+1 
    else: 
     x=[] 
     x = x + [y, m[j][2], m[k][2], m[l][2], m[j][0], m[l][0], p] 
     y=y+1 
     #f1.writelines(str(x)+'\n') 
     for item in x: 
      f1.write(str(item)+' ') 
     f1.write(str('\n')) 
     j=j+1 

f.close() 
f1.close() 

내 코드 .....

내가 text0001 ..... text1500.lab 같은 일련의 파일 이름이 이름

을 바꾸는로 매번 그들에게 전화 할 필요없이 한 번에 실행하려면
enter code here 
+2

코드를 게시하십시오. – SilentGhost

+1

그리고 데이터 파일의 요약 – extraneon

+3

@ kaushik :이 코드는 주어진 문제와 아무런 관련이없는 순수한 난센스입니다. – SilentGhost

답변

1

당신은뿐만 아니라 glob 모듈을 살펴 수 있습니다.

import glob 
list_of_files = glob.glob('C:/begpython/wavnk/*.lab') 

을 그리고 네, 그것은뿐만 아니라 윈도우에서 작동 : 그것은이 쉽다. 그러나 일치하는 파일 만 찾거나 읽지 않습니다.

코드 예제를 보면, 파이썬 csv 모듈에도 관심이 있거나 관심이 없을 수 있습니다.

+0

이 창에서 작동합니까 ?? Windows와 비슷한 항목으로 gud가 표시됩니다. – kaushik

2

디렉토리의 파일 목록에서 반복자를 사용하지 않는 이유는 무엇입니까? 몇 가지 예제 코드를 게시 하겠지만 여기있는 모든 사람들이 당신을 위해 모든 일을 수행하고 있다는 느낌을 갖습니다.

+0

하하 !!! 하느님의 농담 ... 은 .. 그냥 을하고 있어요 방법은 u는 내가 전체 코드 나 자신을 쓴 직접 이렇게 말할 수 있습니다 알고 ... 실제 데이터를 알고 있기 전에, 유 해달라고 댓글을 통과 그나마 난 그냥 해달라고 부탁하십시오 도움과 포인트 내가 박차 고 잘못을 정정 그것에 대한 단서가있어 .. – kaushik

+2

나는이 그것이 내가 대답을 고려할 정말로 아니기 때문에 upvote에 주저했다 ...하지만 그때는 OP의 "문제"를 다시 읽고 그는 문자 그대로 만 제공 한 제안에 대해 물었다. 나는 또한 당신의 느낌에 완전히 동의합니다. OP에 열중하지 않으려 고하지만 실제로 어떤 노력을 기울이고 진정으로 붙어 있다는 것을 증명할 때까지 아무도 실제로 코드를 게시하지 않기를 바란다. 그는 어떻게 다르게 배울 것입니까? –

+2

@ kaushik : 아마도 질문과 태도를 검토하고 싶을 것입니다. –

0

[listdir] [1]을 사용하여 디렉토리 내용을 나열 할 수 있습니다.

할 수 있습니다 내장 함수

allnames = listdir... 
inputnames = [name for name in allnames \ 
       where os.path.[splitext][2](name)\[1\] == ".lab" ] 

또한 필터() 또는지도 (볼 수 같은과 확장에 필터).

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