2016-10-15 2 views
0

각 파일의 내용을 파이썬에서 별도의 목록으로 준비하고 싶습니다. 나는 내가 말할 수있는 루프에 대한 떠들썩한 파티와 비슷한 할 수있는 사용하고 있습니다 : 글로브와각 파일의 내용을 파이썬에서 별도의 목록으로 읽으십시오.

for i in file_path; do writing stuff; done 

내가 각 파일을로드 할 수 있지만 각 파일의 목록에있는 내용을 저장하려면 나중에 목록의 이름과 수를 하드 코드하지 않고 비교 목적으로 사용하십시오.

import sys 
import glob 
import errno 

list_$name[] ##<this is not python 

path = './dir_name/*' 
files = glob.glob(path) 
for name in files: 
    try: 
     with open(name) as f: 
      lines = f.read().splitlines() 


    except IOError as exc: 
     if exc.errno != errno.EISDIR: 
      raise 

내가도 가능하고 싶지 또는 내가 루프로 각 파일을 처리하는 쉘 스크립트를 사용할 필요가 무엇인가 : 이것은 내가 파이썬에서받은 얼마나 걸리나요?

+1

읽고 쓰는 데이터의 종류는 무엇입니까? – lhcgeneva

+0

줄의 목록이 필요한 비교 대상은 무엇입니까? 'file_path에 어떻게 들어 있는지 모르겠습니다. 쓸 물건을 써라. done'은 여러 파일을리스트로 읽는 것과 같습니다. –

+0

@Padraic Cunningham 질문은 정말 bash 질문이 아닙니다. 간결함을 위해 나는 bash에서 여러 파일의 처리 된 내용을 저장할 수 있고 파이썬에서이 작업을 수행하는 방법을 모르는 간단한 예제를 원했습니다. 혼란스러워서 죄송합니다. – badner

답변

1
import sys 
import glob 
import errno 

list_$name[] ##<this is not python 

path = './dir_name/*' 
files = glob.glob(path) 

contents = [] 
for name in files: 
    try: 
     with open(name) as f: 
      lines = f.read().splitlines() 
      contents.append (lines) 


    except IOError as exc: 
     if exc.errno != errno.EISDIR: 
      raise 

    # Your contents list will now be a list of lists, each list containing the contents of one file. 
+0

는 개념적으로 생각했던 것과는 다르지만 확실히 환상적인 해결책입니다! 고맙습니다! – badner

+0

그것은 당신을 위해 작동합니다! –

관련 문제