Skip to main content
 首页 » 编程设计

python之使用 re.split 在 Python 中将文件拆分为多行

2025年05月04日8傻小

我正在尝试使用类似于以下代码的列表理解来拆分文件:

lines = [x for x in re.split(r"\n+", file.read()) if not re.match(r"com", x)] 

但是,lines 列表的最后一个元素总是一个空字符串。有谁知道避免这种情况的方法(不包括在之后放置 pop() 的错误)?

请您参考如下方法:

收起正则表达式锤子:-)

  1. 您可以直接遍历文件; readlines() 现在几乎已经过时了。
  2. 了解 str.strip() (及其 friend lstrip() 和 rstrip())。
  3. 不要使用file 作为变量名。这是一种错误的形式,因为 file 是一个 built-in function .

您可以将代码编写为:

lines = [] 
f = open(filename) 
for line in f: 
    if not line.startswith('com'): 
        lines.append(line.strip()) 

如果你仍然在那里得到空行,你可以添加一个测试:

lines = [] 
f = open(filename) 
for line in f: 
    if line.strip() and not line.startswith('com'): 
        lines.append(line.strip()) 

如果你真的想要一行:

lines = [line.strip() for line in open(filename) if line.strip() and not line.startswith('com')] 

最后,如果您使用的是 python 2.6,请查看 with statement进一步改进。