-1

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

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)
4

3 回答 3

3

您开始迭代文件f(作为迭代器)

for l in f:

获取第一行,然后立即使用 . 读取其所有剩余内容f.readlines()
这没有多大意义(如果不说 - 没有意义)。

于 2019-07-17T19:59:35.780 回答
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 读取文件的其他行。所以两者都做,显然没有帮助。

于 2019-07-17T19:58:43.237 回答
0

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

for l in f:
 print(l)
 fullweb=web+l
 links.append(fullweb)
 ft.writelines(fullweb)

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

于 2019-07-17T20:12:11.723 回答