我正在编写一个程序来计算作为输入的文件中的所有行,单词和字符。
import string
def main():
print "Program determines the number of lines, words and chars in a file."
file_name = raw_input("What is the file name to analyze? ")
in_file = open(file_name, 'r')
data = in_file.read()
words = string.split(data)
chars = 0
lines = 0
for i in words:
chars = chars + len(i)
print chars, len(words)
main()
在某种程度上,代码还可以。
但我不知道如何计算文件中的“空格”。我的角色计数器只计算字母,空格被排除在外 另外,我在计算线条时画了一个空白。
答案 0 :(得分:11)
您可以使用len(data)
作为字符长度。
您可以使用.splitlines()
方法按行分割data
,结果的长度为行数。
但是,更好的方法是逐行读取文件:
chars = words = lines = 0
with open(file_name, 'r') as in_file:
for line in in_file:
lines += 1
words += len(line.split())
chars += len(line)
现在程序即使文件非常大也能正常工作;它在内存中一次不会保存多行(加上python保持的小缓冲区使for line in in_file:
循环更快一点)。
答案 1 :(得分:4)
非常简单: 如果你想打印没有字符,文件中没有单词和行。并包括空间..最短的答案我觉得是我的..
import string
data = open('diamond.txt', 'r').read()
print len(data.splitlines()), len(string.split(data)), len(data)
继续编码好友......
答案 2 :(得分:0)
读取文件 -
d=fp.readlines()
字符 -
sum([len(i)-1 for i in d])
线 -
len(d)
话 -
sum([len(i.split()) for i in d])
答案 3 :(得分:-1)
这是一种不使用任何关键词计算单词的粗略方法:
element<int> e;