如何从文本文件中提取特定文本

时间:2019-10-18 11:14:15

标签: python python-2.7

Hello Stackoverflow社区,

我的代码有问题,我试图从文本文件中检索某些特定的文本,我可以这样做。但是我正在使用seek方法来检索数据。但是为此,我给出了文本的开始位置和文本的结束位置。这给了我想要的确切输出。但是有时检索文本的长度可能会更长,然后我的代码无法检索整个文本。那我该怎么办

我正在使用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 :(得分:0)

您可以使用regular expressions,因此与此类似

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.