python:切片字符串,从子字符串start+n取值,然后使用该值计算新子字符串的长度

2024-09-28 03:19:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图读取一个文件的内容,查找一个特定的字符串,然后将以下2个字符(十六进制格式的整数)读取为x,然后substring读取以下长度为x的字符串。你知道吗

示例:如果文件内容如下:

1390145993ASDF06452048091938HFDJGK3985719ASDF031395829382235235235235235235DHFGAJDGFASDF103235923785907230646246246346734735746845698

  1. 寻找ASDF。你知道吗
  2. 读下2个字符(06)。所以我们需要6个十六进制值。你知道吗
  3. 读取接下来的6个十六进制值452048091938。你知道吗
  4. 所以所需的字符串是ASDF06452048091938。你知道吗
  5. 继续,直到文件结束。你知道吗

所需输出为:

  1. ASDF06452048091938
  2. ASDF03139582
  3. ASDF103235923785907230646246246346734

到目前为止,我已经尝试了:

location=1

while True:

    location=file.find('ASDF', location+1)

if location==-1:

    break

print file[location:]

Tags: 文件字符串示例内容格式location整数substring
1条回答
网友
1楼 · 发布于 2024-09-28 03:19:29

切下你想要的长度。将其转换为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

相关问题 更多 >

    热门问题