如何不计算以'#'开头的行中的字符数在python的文本文件中

时间:2017-02-13 06:24:33

标签: python

我有这个代码读取文本文件中的行并计算字符并在达到1000个字符或更多时停止。如何修改它以便它不会计算以#符号开头的任何行上的字符?

infile = open('word_count.tst', 'r') #word_count is just a sample file.
lines = infile.readlines()
char_count = 0
for line in lines:
    char_count = char_count + len(line)
    if char_count >= 1000:
        break
print("File has %d characters" % (char_count))

2 个答案:

答案 0 :(得分:1)

使用with语句打开文件。不要只是遍历文件对象读取所有行。使用a = a + b的简写作为a += b。检查行是否以带有#函数的string.startswith()开头,并使用not取消它以获得所需条件。

你可以这样做:

char_count = 0
with open('word_count.tst', 'r') as f:
    for l in f:
        if not l.startswith('#'):
            char_count += len(l)
            if char_count >= 1000:
                break

答案 1 :(得分:0)

只需将if line[0] != "#":添加到代码中:

f = open('word_count.txt', 'r') #word_count is just a sample file.
char_count = 0
for line in f:
    if line[0] != "#":
        char_count = char_count + len(line)
        if char_count >= 1000:
            break
print("File has %d characters" % (char_count))