用python中另一个文件的输入搜索文件

2024-06-28 19:18:50 发布

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

我要做的是从一个文件中读取一行到一个字符串,然后在另一个文件中搜索包含该字符串的行,并用.split()解析该行。你知道吗

我的代码如下所示:

for line in portslist:
    marker = line.split()
    printername = marker[0]
    address = marker[1]

    for lines in constantfile:
        if address in line: #if the desired address is in the line
            lineholder = line
            lineholder = lineholder.split()
            oldonline = lineholder[4]
            oldutc = lineholder[5]
            status = lineholder[2]

但是,我得到了错误

in readermain oldonline=lineholder[4] IndexError: list index out of range

经过一些故障排除后,我的constantfile中的行似乎从未被分配到行。相反,文件portlist中的行似乎被分配给了line,该行只有两个索引。你知道吗

我的问题是如何将字符串"address"所在的行分配给行,以便我可以解析和使用它?你知道吗


Tags: 文件the字符串代码inforifaddress
2条回答

我认为您使用的是line,而您应该使用lines

for lines in constantfile:
    if address in lines: #if the desired address is in the line
        lineholder=lines.split()
        # etc.

另外,如果constantfile是一个文件对象,那么在外for循环的第一次传递之后,该迭代器将被耗尽。你知道吗

缩进使得即使“address in line”的计算结果为false,块的其余部分也将运行。你知道吗

第二,constantfile中的行应该分配给变量“lines”。将相应的代码改写为

if address in lines:
    lineholder = lines
    ...

你应该表现得很好。你知道吗

此外,我建议使用一种不太武断的命名约定,它明确表示您要处理来自两个不同文件的行。例如

  • 行->;端口行
  • 标记->;portlinesplit
  • 行->;consline
  • lineholder->;constlinesplit

这样就不那么混乱了,代码的可读性也会提高。你知道吗

相关问题 更多 >