求教,python如何输出特定字符间的数据?

我的目的是使用python分别输出两个%%之间的字符数据打印,要使用通用格式,因为我的数据有点多,多谢了我的数据格式如下:%%gesaasgdjgkhljjlblvlfd... 我的目的是使用python分别输出两个%%之间的字符数据打印,要使用通用格式,因为我的数据有点多,多谢了
我的数据格式如下:
%%gesa
asgdjgkhljjlblvlfddfk
sjjdjjfjjjgjgjhjhjhjgjgjf
skdkkfjjfjgjgghhhhjj
sdhhffdf
%%gess
shhdhdhfhhfhfhfhh
sdhhdhffjkgkkfkkdk
sjdjfjfjjdjdjdjsjkwlewl
skkdkkdkdssdkjdkd
ddskldsdds
%%gesd
sdjjdjjdjdjjjjjdjjdjjdjdj
sjsjsjss
%%gedr
ssjjsjjjjjjjjjjjjsssssssjd
sskkskskkskskks
。。。。。。数据很长
展开
 我来答
albumin
2014-03-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2411万
展开全部
a=open('a').read()
b=open('b').read()
import re
ids=re.findall('(?!\S)%%\w+',a)
for id in ids:
  id=re.escape(id)
  match=re.search(id+"(?!\w).*?(?=%%|\Z)",b,re.S)
  if match:
    print(match.group(0))

以上是从a文件读取ID,然后输出b文件相应ID下内容的代码

只葽a文件和b文件中ID都是唯一的就可以

追问
我现在是有两个文件,a文件是只有ID,如%%gesa,%%gedr,只是b文件中所有ID的一部分,b文件就如同上面格式的数据,很长。
我的目的就是只将b文件中的数据与a文件ID相同的输出来,%%也要输出,该如何做呢,

新手由衷感谢,只能以财富值表示感谢
追答
a=open('a').read()
b=open('b').read()
import re
ids=re.findall('%%\w+',a)
for id in ids:
  id=re.escape(id)
  match=re.search(id+"(?!\w).*?(?=%%|\Z)",b,re.S)
  if match:
    print(match.group(0))

以上代码从a文件查找ID,输出b文件对应内容的代码

如果在文件中ID没有重复的就可以

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式