python中去掉空行的问题

在python中处理空行时,经常会遇到一些问题。现总结经验如下:

1.遇到的空行如果只有换行符,直接使用==‘\n‘或者 len(line)==line.count(‘\n‘)

2.有多个空格+换行符时。有几种处理方法:①split; ②正则表达式‘^\n‘(不会);③if eachLine[:-1].strip()

展开:

eg.文件过滤,显示一个文件的所有行,忽略以井号(#)开头的行。

1 f=open(‘test.txt‘,‘r‘)
2 for eachLine in f:
3     if not eachLine.split(): #  whether   space
4         print eachLine,
5     elif eachLine.strip()[0]!=‘#‘:
6         print eachLine,
7
8 f.close()

1 f=open(‘test.txt‘,‘r‘)
2 for eachLine in f:
3     if not eachLine[:-1].strip():#whether space
4         print eachLine,
5     elif eachLine.strip()[0]!=‘#‘:
6         print eachLine,
7
8 f.close()

这两种方法都可以判断,

从同一台电脑上读取同样多行的字母,相对来说,第一种方法花费了8.4s,第三种方法花费了1.6s。从实验的角度上大概是第三种方法相对性能更优。

但具体是split()性能更优还是[:-1].strip()性能更优,有待进一步学习。

时间: 2024-10-13 10:52:42

python中去掉空行的问题的相关文章

python中去掉文件的注释

import sys import re PY_PATTERN = re.compile( r""" \s*\#(?:[^\r\n])* | \s*__(?:[^\r\n]*) | "{3}(?:\\.|[^\\])*"{3} | '{3}(?:\\.|[^\\])*'{3} """, re.VERBOSE | re.MULTILINE | re.DOTALL ) txt = open("cmd.txt")

你真的了解python中的换行以及转义吗?

python中的分号 在python中默认是以换行来标志一行语句的结束. a = "xxxx" print(a) # xxxx 这段代码很简单,因为a =?"xxxx"后面已经没有内容了是一个换行,那么就代表这个语句结束了.但是在python中我们还可以指定分号,来指定该语句结束了. a = "xxxx" ; print(a) ; b = 1; print(b) # 输出内容 """ xxxx 1 "&qu

Python中time模块详解

在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST

【Mininet】如何在python中获得Mininet中的主机名称

毕设中遇到一个问题是需要在输出的结果文件以当前运行脚本的主机命名.本以为可以轻易的使用 hostname 或者python中的 socket.gethostname() 方法来获取,但是运行后发现并非如此: mininet> h19 hostname ubuntu 即使在mininet环境下,使用linux的 hostname 命令返回的也是本地主机的主机名称,而 socket.gethostname() 也同样. 我的解决方法是通过解析 ifconfig 命令的输出来得到当前主机名,代码如下:

详解 Python 中的下划线命名规则

在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用. >>> _ Traceback (most recent call last): Fil

python中如何表示多维数组(即矩阵形式)

python中如何表示多维数组 在java或者c以及其他语言中,表示个"整型3行4列"的矩阵,可以这样声明:int a[3][4]; 但是在python中一不能声明变量int,二不能列出维数.我们只能利用列表中夹带列表形式表示. 以实际例子为例,想将文件中如下格式的数据读取出来,,文件中的每行数据是一个样本,列数是每个样本的属性个数.我们希望将其读取出来组合成N*2的矩阵形式,以便于对这些数据进行处理. 实现的代码如下: dataSet = [] #列表,用来表示,列表中的每个元素也是

Python中类型的概念(一)

本课程主要介绍6种Python语言中的类型:数字类型.字符串类型.元组类型.列表类型文件类型.字典类型 1.数字类型 Python语言包括三种数字类型:整数类型.浮点数类型.复数类型 (1)整数类型 与数学中的整数概念一致,没有取值范围限制 pow(x, y)函数:计算xy. (通过指数函数,可以看出,python语言整数类型没有范围限制) (0x, 0X开头表示16进制数) (0b, 0B开头表示2进制数 ) (0o, 0O开头表示8进制数) (2)浮点数类型 带有小数点及小数的数字 Pyth

Python中基本的读文件和简单数据处理

Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六个案例: Find the lowest crime rate(读取csv文件,字符串切分,for循环和if判断过滤数据) Discover weather pattern in LA(for循环和if判断进行频数统计) Building a Spell Checker(词频统计,字符串预处理,字典

python中的变量和数据类型

一.变量定义:变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字. 二.变量命名规则: 1. 变量名由字母.数字.下划线组成 2. 数字不能开头 3. 不可以使用关键字, 举例:a,a1,a_1 三.变量的赋值: 1. Python中的变量不需要声明,变量的赋值就是变量声明和 定义的过程: 2. 每个变量在使用前都必须赋值,变量赋值以后该变量才会 被创建: 3. 等号(=)用来给变量赋值,等号(=)运算符左边是一个 变量名,等号(=)运算符右边是存储在