2017-08-29 94 views
1

整條生產線,我有一些文本文件,它看起來像這樣的:我只剩下在文件開頭的號碼contentOfThatFile.split('SPLIT') AM:拆分並刪除字符串

blah blah 
2131232 SPLIT 
fdsfdsf dfds 
fds fdsdf 
fdsf fds 
3423423 SPLIT 
dsf 324 fdsr 
3243 fsdf 3wrfs 
543534 SPLIT 

如果我這樣做。反正是有使用split()與去除上正在拆分整行?因此,輸出將是:

blah blah 

fdsfdsf dfds 
fds fdsdf 
fdsf fds 

dsf 324 fdsr 
3243 fsdf 3wrfs 

回答

2
import re 

foo = re.split('.* SPLIT',x) 
print(foo) 

爲了您的具體的例子,包括轉化成列表VS保持它作爲一個字符串(無論您的喜好而定),這裏是一個更詳細的片斷:

words = """blah blah 
      2131232 SPLIT 
      fdsfdsf dfds 
      fds fdsdf 
      fdsf fds 
      3423423 SPLIT 
      dsf 324 fdsr 
      3243 fsdf 3wrfs 
      543534 SPLIT""" 

import re 
import itertools 

foo = re.split('.* SPLIT\n*',words) 
re_joined = ''.join(foo).strip() 
re_split = re_joined.split('\n') 

print(re_joined) 
print(re_split) 
+0

完美工作,我一直在尋找一張外卡的選擇。謝謝!對於任何人在未來的搜索,'x'是你正在做的操作字符串。 – khalessi22

1

斯普利特換行符代替:

contentOfThatFile.split('\n') 

然後通過每個迭代行並忽略所有的那些機智^ h SPLIT它:

[line if 'SPLIT' not in line else '\n' for line in contentOfThatFile.split('\n')] 

這將替換每一行中有SPLIT用一個新行的文件中。

2

的下面從源文件「texttosplit.txt」不包括在該文件中包含的任何行中寫入一個新文件「newfile.txt」,「SPLIT」。

with open('texttosplit.txt') as fo: 
    for line in fo: 
     if "SPLIT" in line: 
      line="" 
     newfile=open("newfile.txt",'a') 
     newfile.write(line) 
     newfile.close()