python:切片字符串,从子字符串start+;n、 然后使用该值计算新子字符串的长度
我正在尝试读取文件内容,查找特定字符串,然后将以下2个字符(十六进制格式的整数)读取为python:切片字符串,从子字符串start+;n、 然后使用该值计算新子字符串的长度,python,string,substring,Python,String,Substring,我正在尝试读取文件内容,查找特定字符串,然后将以下2个字符(十六进制格式的整数)读取为x,然后将子字符串读取以下长度字符串x 示例:如果文件内容如下: 1390145993ASDF06452048091938HFDJGK39857719ASDF0313958293822352352352352335235235DHFGAJDGFASDF10323592378590725907230646246346734735746845698 查找ASDF 阅读下面2个字符(06)。所以我们需要6个十六进制值
x
,然后将子字符串
读取以下长度字符串x
示例:如果文件内容如下:
1390145993ASDF06452048091938HFDJGK39857719ASDF0313958293822352352352352335235235DHFGAJDGFASDF10323592378590725907230646246346734735746845698
ASDF
452048091938
ASDF06452048091938
location=1
while True:
location=file.find('ASDF', location+1)
if location==-1:
break
print file[location:]
ASDF06452048091938
ASDF03139582
asdf103235923785907230646246346734
location=1
while True:
location=file.find('ASDF', location+1)
if location==-1:
break
print file[location:]
切下你想要的长度。将其强制转换为int,然后分割子字符串
location = 0
while True:
location=file.find('ASDF', location+1)
if location == -1:
break
length = int(file[location+4:location+6], 16)
print file[location:location+6+length*2]
输出:
ASDF06452048091938
ASDF03139582
ASDF1032359237859072306462
我投票决定重新讨论这个问题。由于不清楚海报上所问的是什么,这封信被关闭了。问题很清楚。投票的人没有仔细阅读问题。由于问题已结束,我的解决方案如下:编辑问题以避免进一步混淆。我想现在已经足够清楚了。它是十六进制的,所以
int(file[location+4:location+6],16)
…如果字符串以ASDF开头,那么location=0