2015-06-26 5 views
1

Я хочу открыть серию подпапок в папке и найти текстовые файлы и напечатать несколько строк текстовых файлов. Я использую это:извлекать строки из подпапок с использованием модуля os.walk() в Python?

from glob import glob 
import fileinput 
with open('output.txt', 'w') as out: 
    for line in fileinput.input(glob('*.')): 
     if 'Subject:' in line: 
      out.write(line) 

Это прекрасно работает только с одной папке, но это не может получить доступ к подпапки, как well.so я слышал о модуле os.walk(). Кто-нибудь знает, как я могу использовать модуль os.walk() для доступа к подпапкам и извлечения и вставки определенной строки в отдельный файл txt?

ответ

2

os.walk Использование и generator expression получить все пути к файлам в текущей директории рекурсивно:

from glob import glob 
import fileinput 
import os 

with open('output.txt', 'w') as out: 
    files = (os.path.join(p, f) for p, ds, fs in os.walk(os.curdir) for f in fs) 
    for line in fileinput.input(files): 
     if 'Subject:' in line: 
      out.write(line) 

fs в коде выше список имен файлов. Вам нужно повторить их, чтобы получить пути к файлам.

os.path.join Используется для создания пути путем присоединения родительского каталога p и имени файла f.

+0

спасибо чувак ... его рабочий ..! – Miller

 Смежные вопросы

  • Нет связанных вопросов^_^