2015-09-27 64 views
2

我需要搜索文件中的某个字符串,并将其中的内容复制到单独的文件中。分配增量文件名

例如, '你好'在一个文件中重复多次。我想将这些后续的“你好”之间的文本复制到一个文件。每次'你好'重复文本后需要去一个新的文件。

请确认我的逻辑在下面的脚本中使用是否正确,并且它给我从我的'If'循环中的缩进错误。

import re 

text_file = "Hello.txt" 
search1 = "Hello" 
outfile = "charlie" 
write1 = False 
x = 0 

with open(text_file , "r") as infile: 
    fi = infile.readlines() 
with open("outfile%s" % x, "w") as fo: 
    fo.write("============================================ \n") 
    for line in fi: 
     if search1 in line: 
      write1 = True 
      x +=1 
      fo.write(line) 
     elif write1: 
      fo.write(line) 

回答

2

试试这个

text_file = 'Hello.txt' 
search_key = 'Hello' 
out_file = 'charlie_%d.txt' 
current_file = None 
occurrence = 0 

with open(text_file, 'r') as input_file: 
    try: 
     for src_line in input_file: 
      if search_key in src_line: 
       # searched text is found, writing to file 
       occurrence += 1 
       if current_file: 
        current_file.close() 
       current_file = open(out_file % occurrence, 'w') 
       current_file.write("============================================ \n") 
       current_file.write(src_line) 
      elif current_file: 
       # no searched text, write line to already open file 
       current_file.write(src_line) 
    finally: 
     if current_file: 
      current_file.close() 
+0

我上面试过,但它仍然给了我后“如果”循环缩进错误。我重新格式化脚本多次,但是这个错误是一致的 – Zoro99

+0

发生+ = 1 ^ TabError:压缩中制表符和空格的使用不一致 – Zoro99

+0

您正在使用哪种编辑器? – mergenchik