Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3清理并规范化URL列表_Python_Python 3.x_Url_Normalization_Normalize - Fatal编程技术网

Python3清理并规范化URL列表

Python3清理并规范化URL列表,python,python-3.x,url,normalization,normalize,Python,Python 3.x,Url,Normalization,Normalize,我在一个文本文件中有一个URL列表,我需要使用Python 3运行一个函数,以便URL的格式与 列表的一个示例: http://www.google.com/images/<text> https://ca.google.com/images/<text> https://www.google.com/images/<text> http://uk.google.com/images/<text> https://www.google.com/im

我在一个文本文件中有一个URL列表,我需要使用Python 3运行一个函数,以便URL的格式与

列表的一个示例:

http://www.google.com/images/<text>
https://ca.google.com/images/<text>
https://www.google.com/images/<text>
http://uk.google.com/images/<text>
https://www.google.com/images/<text>

因为字符串在python中是不可变的,所以我们不能更改其中的字母表,而是生成新的字符串,因此有点复杂。首先,我们删除
http
元素。然后我们检查链接中是否存在
www
。如果没有,我们将国家代码(两个字母)替换为
www

list1 = ['http://www.google.com/images', 'https://ca.google.com/images','https://www.google.com/images','http://uk.google.com/images',
'https://www.google.com/images']
list1 = [item.replace('http://', 'https://') for item in list1]
for item in list1:
    if not 'www' in item:
        old_item = item
        v = str(item[8:10])
        new_item = item.replace(v, 'www')
        list1.append(new_item)
        list1.remove(old_item)

print(list1)
输出:
['https://www.google.com/images', 'https://www.google.com/images', 'https://www.google.com/images', 'https://www.google.com/images', 'https://www.google.com/images“]

您好,谢谢您的关注!好的,在列表中,有时会有英国或ca或任何国家代码代替www,因此,我需要在不知道国家代码的情况下自动将其更改为www,也许有一种方法可以更改字符串的开头?@Dave如果只有3个,4重复使用最佳方法的国家将使用与上述相同的代码。只需添加国家的缩写,并将其替换为
www
。像这样
list1=[item.replace('ca','www')用于列表1中的项目]
。可能会有点重复和不和谐,但会完成工作。如果有很多让我知道,我会尝试。也许有一种方法只是取代一切直到符号“?我在想,也许最好的办法是把所有的东西都替换掉,直到上面提到的符号变成“”。目前,这些URL都在一个文本文件中,我可以循环它们,每一个都在不同的行上,所以也许在Python中有一种方法可以检查URL是否以开头,如果不是,我可以替换为?很抱歉,如果我不善于解释,但我认为这个解决方案可能有效,但我不知道这是否可行,我无法找到任何例子。谢谢大家!@戴夫:是的,当然有。给我点时间。我会更新答案,让你知道。问题是,有一个非常大的网址数量,我将无法写每个国家,但仍然感谢你检查这个!
list1 = ['http://www.google.com/images', 'https://ca.google.com/images','https://www.google.com/images','http://uk.google.com/images',
'https://www.google.com/images']
list1 = [item.replace('http://', 'https://') for item in list1]
for item in list1:
    if not 'www' in item:
        old_item = item
        v = str(item[8:10])
        new_item = item.replace(v, 'www')
        list1.append(new_item)
        list1.remove(old_item)

print(list1)