Как извлечь конкретный текст из текстового файла - PullRequest
0 голосов
/ 18 октября 2019

Здравствуйте, сообщество Stackoverflow,

У меня есть проблема с моим кодом, из-за которой я пытаюсь получить какой-то определенный текст из текстового файла, что я могу сделать. Но я использую метод поиска для получения данных. Но для этого я даю начальную позицию текста и конечную позицию текста. Что дает мне точный вывод, что я хочу. Но иногда длина извлекаемого текста может быть больше, чем мой код не извлекает весь текст. Итак, как я могу это сделать

Я использую python2.7 и пытаюсь извлечь конкретные данные из текстового файла

file = open("C:\Users\This_PC\p4.txt", "r")
file.seek(645)
string = file.read(13 - 0)
print string

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

p4.txt содержание упоминается ниже

# A Perforce Label Specification.
#
#  Label:       The label name.
#  Update:      The date this specification was last modified.
#  Access:      The date of the last 'labelsync' on this label.
#  Owner:       The user who created this label.
#  Description: A short description of the label (optional).
#  Options:     Label update options: [un]locked, [no]autoreload.
#  Revision:    Optional revision specification to make an automatic label.
#  ServerID:    If set, restricts access to the named server.
#  View:        Lines to select depot files for the label.
#
# Use 'p4 help label' to see more about label views.

Label:  test_label123

Owner:  This_PC

Description:
    Created by Auto12

Options:    unlocked noautoreload

1 Ответ

0 голосов
/ 18 октября 2019

Вы можете использовать регулярные выражения , поэтому что-то похожее на это

import re

file = open("test.txt", "r")
string = file.read()
m = re.search('(?<=Label:) {0,2}(\w+)', string)

print m.group(1)

Возможно, вам потребуется настроить регулярное выражение, чтобы правильно прочитать второе появление, а не первое (Label: The label name.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...