WedX - журнал о программировании и компьютерных науках

Нарезка начала строки до конца строки с захватом строки

Я до сих пор не могу понять, как разрезать «строку», а затем захватить всю строку, найдя какую-то «строку». это то, что я делаю до сих пор:

content.txt :
#Try to grab this line start
#Try to grab this line 1
#Try to grab this line 2
#Try to grab this line 3
#Try to grab this line 4
#Try to grab this line 5
#Try to grab this line 6
#Try to grab this line end
#Try to grab this line 7
#Try to grab this line 8

мой сценарий:

f_name = open('D:\PROJECT\Python\content.txt', "r").read()
start = f_name.find('start')
end = f_name.find('end')
jos = slice(start, end)
make = open('D:\PROJECT\Python\result.txt', "w")
make.write(f_name[jos])

результат вывода.txt:

    start
    #Try to grab this line 1
    #Try to grab this line 2
    #Try to grab this line 3
    #Try to grab this line 4
    #Try to grab this line 5
    #Try to grab this line 6
    #Try to grab this line

вывод, который мне нужен:

#Try to grab this line start
#Try to grab this line 1
#Try to grab this line 2
#Try to grab this line 3
#Try to grab this line 4
#Try to grab this line 5
#Try to grab this line 6
#Try to grab this line end

спасибо прежде, я надеюсь, что мое объяснение было ясно. Любая помощь будет принята с благодарностью!

20.01.2017

  • Другими словами, вы хотите знать, как захватить все строки между начальным и конечным разделителями включительно? 20.01.2017
  • да со всей линейкой 20.01.2017
  • Связано: stackoverflow.com/q/7559397, stackoverflow.com/q/7098530 20.01.2017

Ответы:


1

Вы можете сделать:

with open(fname) as f:
    content = f.readlines()
# you may also want to remove whitespace characters like `\n` at the end of each line
content = [x.strip() for x in content] 
# Get the id of the line with "start"
start_id = [id for id in range(len(content)) if "start" in content[id]][0]
# Get the id of the line with "end"
stop_id = [id for id in range(len(content)) if "end" in content[id]][0]
# Slice our content
sliced = content[start_id : stop_id+1]
# And finally, to get your output : 
for line in sliced : 
    print line
# Or to a file :
make = open('D:\PROJECT\Python\result.txt', "w")
for line in sliced :
    make.write("%s\n" % line)
20.01.2017
  • Спасибо, это действительно помогает мне! если вы хотите объяснить мне больше, что означают эти (%s\n % строка) скрипт? 20.01.2017
  • Это означает, что вы пишете новую строку от оригинального штрафа. Часть %s - это место, где будет ваша строка. И вы заменяете эту строку строкой %, что означает, что %s принимает значение строки. \n здесь, чтобы добавить новую строку в ваш файл. 23.01.2017
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]