2014-04-28 51 views
0

我有文件與此內容:如何查找包含特定內容的文件?

Sent 
Trash 
Drafts 
Junk 

,我希望找到並與Python刪除。

我知道循環搜索文件並打開文件,我知道正則表達式是如何工作的,但是正則表達式逐行讀取文件,我不能用關鍵字來搜索文件,因爲有很多文件包含這些文字(如'Send'),我想要的確切內容。我能做什麼?

我想是這樣的:

with open(fullsourcefilename) as openfile: 
    if openfile.read() == "Sent\nTrash\nDrafts\nJunk": 

,但它不工作。

+0

我想在最後你可能會失去一個額外的換行符 - 也可以在文件中使用'.read()'。 –

+0

@AlexThornton我添加了read(),但它通過了條件。 –

+0

你是否用額外的換行符檢查了我的答案? –

回答

0

嘗試多正則表達式:

import re 

with open(fullsourcefilename) as openfile: 
    if re.search(r'Sent\nTrash\nDrafts\nJunk\n', openfile.read(), re.MULTILINE): 

這不,如果你有大文件最優化的檢查,但如果你需要的是一個快速和骯髒的解決方案工作。

0

嘗試:

import re 
regex = re.compile("(Sent|Trash|Drafts|Junk") 
with open("my_file.txt") as f: 
    for line in f: 
     result = regex.search(line) 

我沒有嘗試,所以可能是正則表達式的字符串是不正確的!

+0

這將以任何順序查找字符串,abd在每次迭代中用'bew'值覆蓋'result'。 – tripleee

相關問題