繁体   English   中英

从文本文件中提取Python字符串

[英]Python String Extraction from text file

我编写了一个python脚本,它将调用服务器并获取响应。 在调用服务器时,它会在请求正文中传递几个值。 应该通过读取文本文件来获取该值。 文本文件示例如下。

我的文本文件示例:


Host: localhost:8080
Connection: keep-alive
.....
.....
{"token":"abcdefhutryskslkslksslslks=="}POST /fill/entry/login HTTP/1.1

Host: localhost:8080
Connection: keep-alive
.....
.....
{"value":"abcdefghijklmnopqrstuvwxyz",
 "pass":"123456789zxcvbnmljhgfds",
 "token":"abcdefghijklmnopqrstuvwxyz=="}POST /fill/health HTTP/1.1

在这里,如果你能观察到,我会得到不同的回答。 我需要捕获以{“value”开头并以“}结尾的字符串(如示例中所示的响应的第二部分)。

在堆栈溢出中搜索时,我遇到了它们提取字符串的情况,但是它们有一个明确的起点和明确的终点。 在我的情况下,即使可以使用搜索字符串“{”url“唯一地标识起始点,也不能识别终点,因为文本文件也包含多个其他括号。

从文本文件中获取sting的特定部分的任何建议/指针(如上所述)将非常有用。

re从解释例如:

>>> with open('file') as f:
...    raw = f.read()
>>> 
>>> import re
>>> pat = re.compile(r'{"value":[^{]+}')
>>> pat.findall(raw)
['{"value":"abcdefghijklmnopqrstuvwxyz",\n "pass":"123456789zxcvbnmljhgfds",\n "token":"abcdefghijklmnopqrstuvwxyz=="}']
>>> pat.search(raw).group()
'{"value":"abcdefghijklmnopqrstuvwxyz",\n "pass":"123456789zxcvbnmljhgfds",\n "token":"abcdefghijklmnopqrstuvwxyz=="}'

如果文件不是很大,可以使用file.readlines()将整个文本读入字符串,然后使用正则表达式库提取所需的部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM