python - 在Python中在列表中分割行?

标签 python function class

我是 Python 新手,但无法获得我想要的结果。我正在打开一个名为 urldata.txt 的文本文件,其中包含我需要按方案、服务器和路径进行分割的 URL。

我已经从文件中检索了数据:

urls = open("urldata.txt").read()
print(urls)

返回:

http://www.google.com

https://twitter.com/search?q=%23ASUcis355

https://github.com/asu-cis-355/course-info

我想将这些 URL 分成 3 个部分,这样当我输入时

urls.scheme()
urls.server()
urls.path()

当我输入时,它会返回每个 URL 的方案

urls.scheme()

'http','https','https'

然后当我输入时它会返回服务器

urls.server()

'google.com'
'twitter.com'
'github.com'

最后,它会返回我输入时的路径

urls.path() 

'/'
'/search?q=%23ASUcis355'
'/asu-cis-355/course-info'

我定义了一个类来执行此操作;但是,我收到一条错误消息,指出 'scheme() 缺少 1 个必需的位置参数:'self' 下面是我的类以及我创建的 def 部分。

class urls:
    def __init__(self,url):
        self.urls=urls
    def scheme(self):
        return urls.split("://")[0]
    def server(self):
        return urls.split("/")[2]
    def path(self):
        return urls.split(".com/")[1]

非常感谢任何帮助!

最佳答案

这已经存在了。它的名字叫urlparse :

from urllib.parse import urlparse

d = urlparse('https://twitter.com/search?q=%23ASUcis355')
print(d)

输出:

ParseResult(scheme='https', netloc='twitter.com', path='/search', params='', query='q=%23ASUcis355', fragment='')

关于python - 在Python中在列表中分割行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36098301/

相关文章:

javascript - jQuery/Javascript 获取多个元素的类以显示具有该类的元素

c++ - 在类中对多个函数使用指针 C++

java - 节点类中的下一个节点

python - 检测骰子的上边

python - 使用Django Haystack仅匹配查询中的某些单词

c++ - 基本值(value)交换功能

javascript - 当选择框值 onchange 时的 JQuery 函数将禁用的 attr 添加到 input[text],

python - Python 中没有名为 itk (Insighttolkit) 的模块

python - 在 Django 模板中转换星级评分

c++ - 在结构体中设置函数