求教,python如何输出特定字符间的数据?
我的目的是使用python分别输出两个%%之间的字符数据打印,要使用通用格式,因为我的数据有点多,多谢了我的数据格式如下:%%gesaasgdjgkhljjlblvlfd...
我的目的是使用python分别输出两个%%之间的字符数据打印,要使用通用格式,因为我的数据有点多,多谢了
我的数据格式如下:
%%gesa
asgdjgkhljjlblvlfddfk
sjjdjjfjjjgjgjhjhjhjgjgjf
skdkkfjjfjgjgghhhhjj
sdhhffdf
%%gess
shhdhdhfhhfhfhfhh
sdhhdhffjkgkkfkkdk
sjdjfjfjjdjdjdjsjkwlewl
skkdkkdkdssdkjdkd
ddskldsdds
%%gesd
sdjjdjjdjdjjjjjdjjdjjdjdj
sjsjsjss
%%gedr
ssjjsjjjjjjjjjjjjsssssssjd
sskkskskkskskks
。。。。。。数据很长 展开
我的数据格式如下:
%%gesa
asgdjgkhljjlblvlfddfk
sjjdjjfjjjgjgjhjhjhjgjgjf
skdkkfjjfjgjgghhhhjj
sdhhffdf
%%gess
shhdhdhfhhfhfhfhh
sdhhdhffjkgkkfkkdk
sjdjfjfjjdjdjdjsjkwlewl
skkdkkdkdssdkjdkd
ddskldsdds
%%gesd
sdjjdjjdjdjjjjjdjjdjjdjdj
sjsjsjss
%%gedr
ssjjsjjjjjjjjjjjjsssssssjd
sskkskskkskskks
。。。。。。数据很长 展开
展开全部
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没有重复的就可以
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询