我要做的是从一个文件中读取一行到一个字符串,然后在另一个文件中搜索包含该字符串的行,并用.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"
所在的行分配给行,以便我可以解析和使用它?你知道吗
我认为您使用的是
line
,而您应该使用lines
:另外,如果
constantfile
是一个文件对象,那么在外for
循环的第一次传递之后,该迭代器将被耗尽。你知道吗缩进使得即使“address in line”的计算结果为false,块的其余部分也将运行。你知道吗
第二,constantfile中的行应该分配给变量“lines”。将相应的代码改写为
你应该表现得很好。你知道吗
此外,我建议使用一种不太武断的命名约定,它明确表示您要处理来自两个不同文件的行。例如
这样就不那么混乱了,代码的可读性也会提高。你知道吗
相关问题 更多 >
编程相关推荐