当我从文件逐行读取时,第一行被跳过。为什么会发生这种情况,我该如何解决?
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)
答案 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循环如何在没有任何功能的情况下逐行读取文件的原理。