【发布时间】:2017-07-26 09:34:34
【问题描述】:
我正在尝试使用 Python 计算文件中某个单词的出现次数。但我必须忽略文件中的 cmets。
我有这样的功能:
def getWordCount(file_name, word):
count = file_name.read().count(word)
file_name.seek(0)
return count
如何忽略以 # 开头的行?
我知道这可以通过逐行读取文件来完成,如this question 中所述。有没有更快、更 Pythonian 的方式来做到这一点?
【问题讨论】:
-
一行是否可能包含内容后跟评论?喜欢
foo # comment? -
file_name.read()不是很 Pythonic。file_name建议这是一个带有文件名的字符串,但.read()建议这是一个文件对象。至于您的问题:您是否考虑过阅读文件line by line? -
@WillemVanOnsem 对不起这个错误。是的。他们可以是
-
@kazemakase 我正在传递文件对象,但不能将其命名为文件。因此我将其命名为
file_name -
嗯,你数数的速度比看每个单词都快。不管你是逐行做,还是批量做对性能都有一定的影响,但是就大哦来说,所有的方法至少O(n)...
标签: python algorithm file file-io io