2012-05-21 7 views
-1

일련의 디렉토리 (약 3 레벨 깊이)를 반복적으로 순환하려고합니다. 각 디렉토리에는 일련의 텍스트 파일이 있습니다. 예를 들어 줄에 특정 문자열이 들어 있으면 텍스트 줄을 디렉토리 경로로 대체하려고합니다.서브 디렉토리의 모든 파일을 파이썬으로 편집하십시오.

/path/to/text/file/fName.txt 

fName.txt 텍스트의 FNAME의 라인은 내가 '텍스트'로이 라인을 대체 할 '문자열 1'문자열이 포함 된 경우 파일 경로의 마지막 부분입니다 + 파일.

이것은 파이썬에서는 쉬워야 만하는 것처럼 보이지만 관리 할 수없는 것 같습니다.

편집 : 매우 심하게 작성된 질문에 대한 사과, 나는 서둘러야했고, 진입해서는 안됩니다.

는 여기에 지금까지

import os 

for dirname, dirs, files in os.walk("~/dir1/dir2"): 
    print files 
    for fName in files: 
      fpath = os.path.join(dirname, fName) 
      print fpath 
      f = open(fpath) 
      for line in f: 
       #where I'm getting stuck 
       s = s.replace("old_txt", "new_txt") 

      #create new file and save output 

내가에 붙어지고있어 무엇 라인의 섹션에 따라 전체 라인을 교체하는 방법입니다 무슨이다. 예를 들어 라인이

That was a useless question, 

내가 원하는 것을 대체 할 수없는 것 같습니다. 내가하려는 것은 '쓸모없는'것을 찾는 데서 만 전체 라인을 바꾸는 것이다. 또한 전체 파일을 다시 쓰는 것보다 한 줄을 수정하는 더 좋은 방법이 있습니까?

감사합니다.

+3

로 (테스트 후, 조심스럽게)

with open(...) as f: 각 파일을 구문 분석을 분석하고 그것을 덮어 필요합니까? 즉 일부 코드 게시 ... 파일 영감을 얻으려면 [pleac] (http://pleac.sourceforge.net/pleac_python/directories.html)을 참조하십시오. –

답변

3

os.walk (예를 살펴) 당신은 무엇을 시도하면 with open(..., 'w') as f:

관련 문제