簡體   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