如何在文本文件中的两个字符串之间查找文本并将其写入不同的文本文件????(在python中)

时间:2014-05-30 05:56:43

标签: python regex

例如......如果以下是king.txt的内容:

asdfbaertybawerdb.....
  1. 我想在a和b
  2. 之间找到文字
  3. 我想在one.txt
  4. 中写sdf
  5. 我想在two.txt等中写erty ...
  6. 我有以下代码。(使用正则表达式)..但它输出为sdfertywerd ....

    import re
    f = open('king.txt','r')
    data = f.read()
    y = re.findall(r'a(.*?)b',data,re.DOTALL)
    fb = open('one.txt' ,'w+' )
    for line in y :
     fb.write(line)
    fb.close()
    

1 个答案:

答案 0 :(得分:1)

你的非贪婪的正则表达式似乎已经做对了。

>>> print re.findall(r'a(.*?)b', 'asdfbaertybawerdb', re.DOTALL)
['sdf', 'erty', 'werd']

问题是这些结果都被写入同一个文件。 one.txt

请改为尝试:

s = 'asdfbaertybawerdb'
results = re.findall(r'a(.*?)b', s, re.DOTALL)
for n, result in enumerate(results):
    with open('%s.txt' % n+1, 'w') as outfile:
        outfile.write(result + '\n')

这将创建名为1.txt,2.txt,3.txt等的输出文件。如果需要,您可以弄清楚如何将文件名映射到文本名称。