好的,我的问题是我的代码只找到并打印列表中的最后一个url,而不是我想要的所有url
def convert(lst):
return ' '.join(lst)
with open("test.txt", 'r') as f:
for lines in f:
test = convert(lines)
urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', lines)
print(urls)
这是txt文件的一部分:
28 https://letterboxd.com/film/deep-blue-sea/
29 https://letterboxd.com/film/the-chronicles-of-riddick/
30 https://letterboxd.com/film/sonic-the-hedgehog/
31 https://letterboxd.com/film/the-babysitter-2017/
所以我不知道我的代码有什么问题,我不明白为什么它不循环文件中的所有行,它只打印列表中的最后一个url,https://letterboxd.com/film/the-babysitter-2017/,而不是列表中的所有url
您的
lines
是文件中的每一行。您希望执行以下操作:绝对没有必要先阅读所有的行,然后再阅读它们。相反,您可以使用
f.read()
一步直接读取文件中的所有数据试试这个:
现在执行
print(urls)
将产生所需的输出相关问题 更多 >
编程相关推荐