0

我必须使用 python remove 函数从具有 404 状态的文件中删除 url。但我不确定为什么它不起作用。

代码:

#!/usr/bin/python

import requests



url_lines = open('url.txt').read().splitlines()
for url in url_lines:
    remove_url = requests.get(url)
    if remove_url.status_code == 404:
       print remove_url.status_code
       url_lines.remove(url)

url.txt 文件包含以下行:

https://www.amazon.co.uk/jksdkkhsdhk
http://www.google.com

应从 url.txt 文件中删除行https://www.amazon.co.uk/jksdkkhsdhk 。

非常感谢您提前提供帮助。

4

1 回答 1

1

你可以跳过它:

if remove_url.status_code == 404:
    continue

您不应该在for循环内尝试将其删除。相反,将其添加到另一个列表中remove_from_urls,并在for循环之后删除新列表中的所有索引。这可以通过以下方式完成:

remove_from_urls = []

for url in url_lines:
    remove_url = requests.get(url)
    if remove_url.status_code == 404:
        remove_from_urls.append(url)
        continue
    # Code for handling non-404 requests

url_lines = [url for url in url_lines if url not in remove_from_urls]

# Save urls example
with open('urls.txt', 'w+') as file:
    for item in url_lines:
        file.write(item + '\n')
于 2020-05-20T04:08:19.777 回答