为什么我看不到文件的第一行?

时间:2019-07-17 19:56:32

标签: python

当我从文件逐行读取时,第一行被跳过。为什么会发生这种情况,我该如何解决?

web="www.instagram.com/"
f= open("accounts.txt","r")
ft=open("add.txt", "w")
links=[]
for l in f:
    name=f.readlines()
    print(name)
    fullweb=web+name
    links.append(fullweb)
    ft.writeline(fullweb)
f.close()
ft.close()
print(links)

3 个答案:

答案 0 :(得分:3)

您正在开始遍历文件f(作为迭代器)

for l in f:

获得第 1 行,然后立即用f.readlines()读取其所有其余内容。
这没有什么意义(如果不说的话,没有意义)。

答案 1 :(得分:1)

您应该对f或f.readlines中的l进行操作,而不要同时对两者进行操作!

with open("accounts.txt") as f:
    lines = f.readlines()
    ...

with open("accounts.txt") as f:
    for line in f:
        ...

说明:

使用迭代器,您已经在文件中的行上进行了迭代。因此,它已经“占用”了第一行,而不是到达“ readlines”,readlines读取了文件的其他行。因此,两者都毫无用处。

答案 2 :(得分:0)

我认为我应该使用迭代变量而不是将函数调用为readline()。无论如何,这解决了问题。

Final

但是我不知道for循环如何在没有任何功能的情况下逐行读取文件的原理。