如果我们只知道字符串的一部分,如何使用 readfile 查找字符串?
How to find string with readfile if we know only a part of the string?
如果我只知道字符串的一部分,如何在文本文件中找到字符串?比如我只知道".someserver.com"
但文件中的整个文本如下所示:
"hostname1.expedite.someserver.com"
所以重点是通过只知道它的一部分来找到整个名字。
部分文件内容:
{"attributes": {"meta_data": {"created_at":1614882362.179626, "created_by": "admin"}, "site": "AF002"}, hostname:"hostname1.expedite.someserver.com",
假设您的数据如下:
{"attributes": "xyz", "hostname": ":hostname1.expedite.someserver.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.another.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.server.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.we.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.dont.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.care.com"}
我们可以:
import ast
check = ".someserver.com"
with open("string.txt", "r") as f:
line = f.readline()
while line:
if check in line:
print(dict(ast.literal_eval(line))["hostname"])
line = f.readline()
这会打印我们:
:hostname1.expedite.someserver.com
假设数据如下:
[{"attributes": "xyz", "hostname": ":hostname1.expedite.someserver.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.another.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.server.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.we.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.dont.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.care.com"}]
然后我们可以:
import json
check = ".someserver.com"
data = json.load(open("string2.txt", "r"))
for d in data:
if check in d["hostname"]:
print(d["hostname"])
这给了我们:
:hostname1.expedite.someserver.com
假设您的源是一个包含大量主机名的文件 sample.txt,最简单的方法是使用正则表达式“hostname.someserver.com”,其中通配符 () 是主机名和 someserver.com 示例之前的任何内容。
import re
f = open("sample.txt", "r")
textfile = f.read()
x = re.findall("hostname.*someserver.com", textfile)
print(x)
如果我只知道字符串的一部分,如何在文本文件中找到字符串?比如我只知道".someserver.com"
但文件中的整个文本如下所示:
"hostname1.expedite.someserver.com"
所以重点是通过只知道它的一部分来找到整个名字。
部分文件内容:
{"attributes": {"meta_data": {"created_at":1614882362.179626, "created_by": "admin"}, "site": "AF002"}, hostname:"hostname1.expedite.someserver.com",
假设您的数据如下:
{"attributes": "xyz", "hostname": ":hostname1.expedite.someserver.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.another.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.server.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.we.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.dont.com"}
{"attributes": "xyz", "hostname": ":hostname1.expedite.care.com"}
我们可以:
import ast
check = ".someserver.com"
with open("string.txt", "r") as f:
line = f.readline()
while line:
if check in line:
print(dict(ast.literal_eval(line))["hostname"])
line = f.readline()
这会打印我们:
:hostname1.expedite.someserver.com
假设数据如下:
[{"attributes": "xyz", "hostname": ":hostname1.expedite.someserver.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.another.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.server.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.we.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.dont.com"}, {"attributes": "xyz", "hostname": ":hostname1.expedite.care.com"}]
然后我们可以:
import json
check = ".someserver.com"
data = json.load(open("string2.txt", "r"))
for d in data:
if check in d["hostname"]:
print(d["hostname"])
这给了我们:
:hostname1.expedite.someserver.com
假设您的源是一个包含大量主机名的文件 sample.txt,最简单的方法是使用正则表达式“hostname.someserver.com”,其中通配符 () 是主机名和 someserver.com 示例之前的任何内容。
import re
f = open("sample.txt", "r")
textfile = f.read()
x = re.findall("hostname.*someserver.com", textfile)
print(x)