2017-06-16 51 views
1

我有这样删除线以上蟒蛇文本具体线路

ABC 
DEF 
Ref.By 
AAA 
AAA 

我想行Ref.By.前删除所有行文本

我该如何在python中做到这一点?

+0

所以文件应该以'Ref.By'开头? –

+0

你可以逐行解析文件并跳过直到找到'Ref.By'文件, – user3764893

+0

可能重复[question](https://stackoverflow.com/questions/33705009/how-to-remove-all-lines-上述A-某些行合蟒)。希望能帮助到你! – OmaRPR

回答

0
lines = open('your_file.txt', 'r').readlines() 
search = 'Ref.By' 
for i, line in enumerate(lines): 
    if search in line: 
     break 

if i < len(lines) - 1: 
    with open('your_file.txt', 'w') as f: 
     f.write('\n'.join(lines[i + 1:])) 

这是正常的提供您的文件大小是在2-4 MB很好。将它存储在超出此点的内存中会变得有问题。

+0

如何删除Ref.By? – Jitesh

+0

@Jitesh我把'lines [i:]'改成'lines [i + 1]'。它会工作。 –

0

试试这个

text_str = """ABC 
DEF 
Ref.By 
AAA 
AAA""" 

text_lines = text_str.split("\n") 

idx = text_lines.index("Ref.By") + 1 

result_text = "\n".join(text_lines[idx:]) 

print(result_text)