思路:
- 文件中存在空行应先去除空行
- 取掉每一行的开头空格
- 判断每一行是否以#号开头
split( ) 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
split( ) 方法语法:
str.split(str="", num=string.count(str)).
- str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num – 分割次数。默认为 -1, 即分隔所有。
注意: str.split( )相当于删除文本中的空格、换行、制表符。比如:
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( ); # 以空格为分隔符,包含 \n
# 输出结果
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
所以我们可以通过split() 来去除空行。
通过strip( ) 去除每行开头的空格。
最后将去除空行的内容写入原文档。
代码如下:
with open('test', 'r') as f:
res = f.readlines()
# print(res)
res = [line for line in res if line.split()] # 去除空行
# print(res)
for line in res:
# print(line)
line = line.strip() # 取掉左右两边的空格
if line[0] != '#': # 判断是否以#开头
print(line)
with open('test', 'w') as f:
f.write(''.join(res))
原文档:
去除空行之后的新文档:
代码输出结果: