如何比较Python中的两个文件,同时忽略带注释的行(即以#开头的行)

2024-05-19 11:30:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文件,其内容如下所示

# version 17.3  
# Config info for 0092  
# Data for sgs  
# State : NA  
# Length : NA  
# Generated on Wed Apr 29 10:30:12 2015  
------------------------------------  
rest of the data  
------------------------------------  

我想在忽略以“#”开头的行后比较这两个文件
我尝试了文件比较模块,它在块级别进行比较(将整个文件作为块读取并进行比较)。 我写了一个简单的代码来进行逐行比较,但似乎行不通。在

^{pr2}$

Tags: 文件infoconfig内容fordataonversion
2条回答

extract_lines函数中,而不是

for line in enumerate(files):
    if line!= "#":

您应该:

^{pr2}$

我假设您是成对比较行,因为压缩,您可以使用两个生成器表达式将它们压缩在一起,以#开头的行:

from itertools import izip

with open("in1.txt") as f, open("in2.txt") as f2:
    a = (line for line in f if not line.startswith("#"))
    b = (line for line in f2 if not line.startswith("#"))
    for l1, l2 in zip(a ,b):
        print(l1,l2)

相关问题 更多 >

    热门问题