2014-01-16 46 views
1

我有一個包含相同的符號,近1500行的文件 「)(()(& & ^%&^一個%&#@%^%* & ^」 非常久遠一些兩個或三個字母的整個文件。如何在python中搜索文件中的字符?

我如何可以搜索這樣的文件,這些字母和顯示O/p屏幕上發現的字母。

+0

因此,如果字母'A','B'和'C'通過這個巨大的文件撒,你想輸出'ABC'? –

+0

是啊或類似的a,b,c ... – codefreak

+0

我的意思是說像a,b,c .... z這樣的任何字符都可以出現在這個文件中,並且o/p應該顯示出現在它就像d,如果文件內容是「*)(*)(&(&^&%$ ^%$#d ^&^%&* e *)()」,則應該是o/p「 – codefreak

回答

8

可能是最快的方法是做

import re 
with open("giantfile.txt") as infile: 
    print(re.findall("[A-Za-z]+", infile.read())) 
+0

+1對於更大的文件,也許單獨處理每行 –

+0

@tobias_k:?。也許更喜歡閱讀的(大)塊文件但是,是的,取決於文件的結構 –

+0

這是完美的 – codefreak

2

建立在Tim的答案上,您可以使用此代碼來保存一些內存。

import re 

alphas = [] 
with open("giantfile.txt") as infile: 
    for row in infile: 
     alphas.extend(re.findall("[A-Za-z]+", row)) 

print alphas 

鑑於此輸入文件:

aaa 
bbb 
c12d 

輸出將

['aaa', 'bbb', 'c', 'd'] 
+0

它可以完美的感謝:) – codefreak