2012-07-27 44 views

回答

1

假設是絕對沒有的文件是如此之大,危險性會導致您的計算機出內存中運行(例如,在生產您可能不希望使用此方法):

f = open("mustang.txt", "r") 
count = f.read().count('.') 
f.close() 
print count 

更合適:

with open("mustang.txt", "r") as f: 
    count = f.read().count('.') 
print count 
1

我願意做它像這樣:

with open('mustang.txt', 'r') as handle: 
    count = handle.read().count('.') 

如果你的文件不是太大,只是將其加載到內存中的字符串和計數點。

1
with open('mustang.txt') as f: 
    fullstops = 0 
    for line in f: 
     fullstops += line.count('.') 
1

這將工作:

with open('mustangused.txt') as inf: 
    count = 0 
    for line in inf: 
     count += line.count('.') 

print 'found %d periods in file.' % count 
+0

一行包含不止一個 ''? – Fraxtil 2012-07-27 02:47:09

+0

@Fraxtil更新..謝謝。 – Levon 2012-07-27 02:50:26

+0

攪拌機是第一個,我在他之後約30秒。這不是什麼大問題,任何現有的答案都適用於EatMyApples。 – Fraxtil 2012-07-27 03:07:27

2
with open('mustang.txt') as f: 
    s = sum(line.count(".") for line in f) 
+0

這是一個整潔的解決方案..我喜歡它比我更好:) – Levon 2012-07-27 03:07:31

1

即使正則表達式如果

import re 
with open('filename.txt','r') as f: 
    c = re.findall('\.+',f.read()) 
    if c:print len(c) 
相關問題