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
答案 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.
)