在文本文件中查找特定单词并打印输出

时间:2020-05-12 17:45:58

标签: python

我需要有关python代码的帮助

我有一个文本文件,其中包含大约10行的段落。下面是一个示例

“ 406%2C318482214%2C318484497%2C318486317%2C318484676%2C318483611%2C318484802%2C318487059%2C318489974%2C318482672%2C318475417&tag_for_child_directed_治疗= 0&_c_csdk_npa_o = false_a_t = 0&guci = 0.0.0.0.0.0.0.8&rbv = 1&u_w = 839&u_h = 424&msid = com.ea.gp.test&_package_name = com.ea.gp.test&an = 30178.android.com.ea.gp.test&net = wi&u_audio = 3&u_so = l&preqs_in_session = 0&support_transparent_background = true“

我如何编写python代码以查找分配给特定单词“ npa”和“ tfua”的值。让我们假设以上文本中突出显示一次。 这些单词可能还会重复多次。

2 个答案:

答案 0 :(得分:1)

假设您的字符串是myStr

myStr = "406%2C318482214%2C318484497%2C318486317%2C318484676%2C318483611%2C318484802%2C318487059%2C318489974%2C318482672%2C318475417&tag_for_child_directed_treatment=0&_c_csdk_npa_o=false&_c_req_tfua=false&_c_req_npa=true&npa=1&tfua=0&guci=0.0.0.0.0.0.0.8&rbv=1&u_w=839&u_h=424&msid=com.ea.gp.test&_package_name=com.ea.gp.test&an=30178.android.com.ea.gp.test&net=wi&u_audio=3&u_so=l&preqs_in_session=0&support_transparent_background=true"
myLst = [lst.split("=") for lst in myStr.split("&")]
myDict = {lst[0] : lst[1] for lst in myLst}

现在myDict["npa"]给出所需的值。对于myDict["tfua"]

同样

如果您确定只希望使用这两个值,则可以将dict限制为仅包含这些值:

myLst = [lst.split("=") for lst in myStr.split("&")]
myDict = {lst[0] : lst[1] for lst in myLst if lst[0] in ["npa", "tfua"]}

答案 1 :(得分:1)

使用re模块

import re
x = "406%2C318482214%2C318484497%2C318486317%2C318484676%2C318483611%2C318484802%2C318487059%2C318489974%2C318482672%2C318475417&tag_for_child_directed_treatment=0&_c_csdk_npa_o=false&_c_req_tfua=false&_c_req_npa=true&npa=1&tfua=0&guci=0.0.0.0.0.0.0.8&rbv=1&u_w=839&u_h=424&msid=com.ea.gp.test&_package_name=com.ea.gp.test&an=30178.android.com.ea.gp.test&net=wi&u_audio=3&u_so=l&preqs_in_session=0&support_transparent_background=true"

npa=re.findall('(?<=npa=)(.*?)(?=&)', x)
tfua=re.findall('(?<=tfua=)(.*?)(?=&)', x)


print(npa)
>>> ['True','1']

print(tfua)
>>> ['False','0']
相关问题