无法使用嵌套for循环组合notepad ++文件中的特定行

时间:2016-06-14 16:01:10

标签: python-3.4

我正在尝试使用两个变量(vg_line和sn_line)将两个记事本++文件中的部分行相互比较,以便将它们组合在一起(如果相等)。一旦找到它的对,就会从每个for循环中打印出某些信息,但它只找到第一对,并且不会继续遍历vg_lines文件,以便将其他行与sn_lines文件进行比较。

input_file = open(input_VG_name)
input_Server_name = open(input_Server_name)

for line in input_file:

    line_data = line.strip()
    vg_line = line_data[0:44]
    volume_group = line_data[44:58]

    for line1 in input_Server_name:

        line_data = line1.strip()
        sn_line = line_data[0:44]
        server_name = line_data[46:64]

        if vg_line == sn_line:
            print(vg_line, volume_group, server_name)

第一篇文章,所以我可以做更好的编码/提问的任何提示非常感谢!

1 个答案:

答案 0 :(得分:0)

您没有阅读文件

尝试以下方法:

input_file = r'c:\file.txt'
input_Server_name = r'c:\server_file.txt'

with open(input_file, 'r') as file:
    for line in file.readlines():

        line_data = line.strip()
        vg_line = line_data[0:44]
        volume_group = line_data[44:58]

        with open(input_Server_name, 'r') as file1:
            for line1 in file1.readlines():

                line1_data = line1.strip()
                sn_line = line1_data[0:44]
                server_name = line1_data[46:64]

                if vg_line == sn_line:
                    print(vg_line, volume_group, server_name)  

问题是:这段代码必须为第一个文件中的每一行读取第二个文件(这是我从原始代码中获得的)。

还有其他两种方法可以匹配文件,搜索一下,有很多答案。不要忘记检查“代码审查”,它也有一些很好的例子。