2014-04-07 2 views
0

파이썬 2.7을 사용하고 있으며 여러 텍스트 파일이있는 디렉토리가 있습니다.Scannin 여러 텍스트 파일

기본적으로 파일의 이름은 같으며 끝에는 1에서 XX까지의 카운터가 있습니다. 텍스트 파일에서 특정 문자열을 검색하여 다른 파일에 쓰고 싶습니다. 그러나 모든 파일을 하나의 텍스트 파일에 저장하면 어떻게하는지 알 수 있습니다.

내 디렉토리의 모든 텍스트 파일을 스캔하고 싶습니다. 내 문자열을 찾으면 예를 들어 싶습니다. result.txt 그리고 내가 찾은 파일과 물론 특정 문자열을 기록해 둡니다.

누군가 어떻게 생각하나요?

감사합니다.

+0

난 당신이 [이] (https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files) 읽고'for' 루프 – jonrsharpe

+0

에 포장 제안 귀하의 질문은 명확하지 않습니다. 새 파일에 무엇을 넣으시겠습니까? 문자열을 포함하는 전체 줄 또는 문자열 만? 단 하나의 문자열입니까, 아니면 목록이 있습니까? – skamsie

+0

grep을 사용 하시겠습니까? grep "my string"*> result.txt –

답변

0
import os 

files = os.listdir('.') 
newfile = 'myfile.txt' 
mystring = 'mystring' 

found = [] 
for f in files: 
    myfile = open(f, 'r') 
    if mystring in myfile.read(): 
     found.append(f) 
    myfile.close() 

myfile = open(newfile, 'w') 
myfile.write("\n".join(found)) 
myfile.close() 
+0

죄송합니다. 늦게 답변을했지만 아주 바빴습니다. 내 디렉토리의 모든 파일을 표시하지만 찾고있는 문자열은 포함하지 않는 파일 만 수신 중입니다. 문자열이 분명히 있습니다. – user2834508

+0

좋아요,'found.append (f)'를'found.append (f + ''+ mystring)'로 변경하십시오. – user189

+0

Works! 고맙습니다! – user2834508

관련 문제