完成后,.write函数不写回原始行

时间:2017-10-04 20:58:33

标签: python python-2.7

我的代码不喜欢我要求它将特定信息附加到特定行。我不确定为什么?

作为参考,我的代码如下所示:

def lookOnMe(fileName):
import socket
global HostName
with open(fileName, 'r+') as f:
    next(f)
    for line in f:
        f.seek(0)
        print(line)
        findStop = line.index("|")
        remainder = line[findStop+2:]
        findStop = remainder.index("|")
        ipAdd = remainder[:findStop]
        ipAdd = "".join(ipAdd.split())
        try:
            HostName = socket.gethostbyaddr(ipAdd)
        except:
            HostName = '-'

        f.write(line.rstrip('\n') + " | " + HostName + '\n')
        f.read()

输入字符串,如下所示:

5558    | 1.000.00.00      | 1.222.0.0/10        | ER | apnic    | 2001-07-19 | SOMESTUFF

1 个答案:

答案 0 :(得分:0)

非常简单。

next(f)语句读取一行,即文件中的第一行,并且不执行任何操作。

然后,您第一次执行for line in f,并尝试读取第二行。哪个是空的(因为你可能在第一行之后有换行符。)

它无法使用子字符串检测解析空行,因为没有|个字符或任何类型的字符。