如何连接不同行中的文本如果它们相邻



所以我有这个TXT和下面的文本示例:

3f064f5dc6d9054cae0602d922cfb3bc.jpg
c471d894b3384dbb5becfbf35886614c.jpg
44b703af3547891a277fe4b2971a0e8d.jpg
ca45e2c73156b8513aa4c286abac2191.jpg
ff286b1f745a235426f28f5edbdd2df6.jpg
70fe48160a3745fc9d963297d6a7e819.jpg
cb017ddb752ad8fb92f22f3cc0c0498a.jpg

我想把连续行中的所有文本连接成一行,用"分隔;OR";在python中。

根据上面的样本,输出是3行:

3f064f5dc6d9054cae0602d922cfb3bc.jpg或c471d894b3384dbb5becfbf35886614c.jpg

44b703af3547891a277fe4b2971a0e8d.jpg或ca45e2c73156b8513a4c286abac291.jpg或ff286b1f745a235426f28f5edbd2df6.jpg

70fe48160a3745fc9d963297d6a7e819.jpg或cb017ddb752ad8fb92f22f3cc0c0498a.jpg

如何做到这一点?

提前感谢

您可以使用itertools.groupby:

from itertools import groupby
for v, g in groupby(map(str.strip, open("your_file.txt", "r")), lambda k: k != ""):
if v:
print(" OR ".join(g))

打印:

3f064f5dc6d9054cae0602d922cfb3bc.jpg OR c471d894b3384dbb5becfbf35886614c.jpg
44b703af3547891a277fe4b2971a0e8d.jpg OR ca45e2c73156b8513aa4c286abac2191.jpg OR ff286b1f745a235426f28f5edbdd2df6.jpg
70fe48160a3745fc9d963297d6a7e819.jpg OR cb017ddb752ad8fb92f22f3cc0c0498a.jpg

只需通过nn拆分内容

with open("test.txt", "r") as f:
content = f.read()
lines = [line.rstrip().replace('n', ' OR ') for line in content.split('nn')]
for line in lines:
print(line)
3f064f5dc6d9054cae0602d922cfb3bc.jpg OR c471d894b3384dbb5becfbf35886614c.jpg
44b703af3547891a277fe4b2971a0e8d.jpg OR ca45e2c73156b8513aa4c286abac2191.jpg OR ff286b1f745a235426f28f5edbdd2df6.jpg
70fe48160a3745fc9d963297d6a7e819.jpg OR cb017ddb752ad8fb92f22f3cc0c0498a.jpg

最新更新