2016-03-02 4 views
0

У меня есть набор файлов, которые я хочу открыть и найти строку. Мой код отлично работает для одного файла. Это затрудняется тем фактом, что я хочу искать другую строку в каждом файле. Например:включить список имен файлов в цикл python

**File | String** 
one.txt | ra 
two.txt | nd 
three.txt | om 
four.txt | st 

Мой вопрос, было бы проще написать весь новый скрипт, чтобы сделать это или это стоит модифицировать мой существующий сценарий, чтобы включить эту функцию?

import re 
import io 
prompt = ">> " 
configfile = input(prompt) 
interfaceno = input(prompt) 

with open(configfile) as infile, open('output2.txt', 'w+') as outfile: 
     copy = False 
     for line in infile: 
        if line.startswith("interface " + interfaceno): 
           copy = True 
        elif line.startswith("interface"): 
           copy = False 
        elif copy: 
           outfile.write(line) 

Сценарий открывает файл, указанный в качестве ввода, а затем выполняет поиск по строке, указанной в качестве ввода. Затем он начинает копировать, когда он достигает строки, указанной в качестве входного сигнала, и останавливает копирование, когда он достигает слова «интерфейс», который появляется во всех текстовых файлах. Этот скопированный раздел затем записывается в другой файл.

Желаемый результат был бы списком каждого имени файла с да или нет, если бы строка была найдена.

**File | String** | Found? 
    one.txt | ra | yes 
    two.txt | nd | no 
    three.txt | om | no 
    four.txt | st | yes 
+2

Оберните свой код функцией – Alex

ответ

0

Сохраните существующий код, но запустите новую программу. Этот новый читает первый файл, который вы опубликовали, с Файл и Строка столбцы. Прочитайте этот файл по строкам, разделив каждую строку на имя файла и строку поиска. Поместите их в переменные и распечатайте их. Вы сделаете это в цикле.

Теперь вернитесь к первой программе. Возьмите части, относящиеся к файлу (ниже строки подсказки) и сделайте это тело цикла, который вы только что написали. Возможно, вам придется настроить пару имен переменных, но это по существу программа: у вас уже есть что-то для обработки одного файла; просто поместите его внутри цикла, чтобы обрабатывать множество файлов.

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