python 初学 - 打印输出附件文件的有效行数

描述
打印输出附件文件的有效行数,注意:空行不计算为有效行数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

输入输出示例
这是仅给出输出格式样例,不是结果。

难点在于判断出空行,所以要对空行进行处理。
这里做个总结:

1 判断是否空字符串:
方法1: str.isspace()=True 则为空字符串
方法2: len(str) = 0 字符串长度为零则为空字符串
方法3: str.strip() =‘’ 则是空字符串
2 列表是否为空格
方法1: str ==None 如果列表为空则默认为None
方法2: if str ,此处可以False则为空
方法3: len(str)==0 则为空列表

对于题目,一开始的想法:

f = open('latex.log','r').readlines()
num = 0
for i in f:
    if i.isspace():
        continue
    else:
        num +=1
print('共%d行'%num)

但是返回出很大的行数,错误。
后来看了别人的答案才知道,从文本读取虽然是字符串,但是每行最后都有换行符,也就是\n。清洗文本的时候要去掉。

f = open('latex.log','r').readlines()
num = 0
for i in f:
    if i == '\n':
        continue
    else:
        num +=1
print('共{:}行'.format(num))

这样就返回正确的值了。

关于文件读取的个人思考

f = open('datou, 'r', encoding="utf-8")
t1 = f.read()
t2 = f.readline()
t3 = f.readlines()
print('f.read()',type(t1),'f.readline()',type(t2),'f.readlines()',type(t3))

从文本中.read()读取,返回为文本的全部字节,字符串形式。
从文本中.readline()读取,返回为文本的一行内容,字符串形式。
注意:使用readlines()读取,返回为文本的各行字符串为元素,列表形式。

f.read() <class 'str'> f.readline() <class 'str'> f.readlines() <class 'list'>

你可能感兴趣的:(python 初学 - 打印输出附件文件的有效行数)