[英]Splitting Lines in Python in a List?
我是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
我想將這些網址分別分成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='')
如果您嘗試調用類定義(URL是什么)而未在Python3中創建此類的實例,則將出現此錯誤
>>> urls.scheme()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: scheme() missing 1 required positional argument: 'self'
>>>
但是,如果您創建一個url實例,然后使用該實例,則可以按預期工作
>>> url_instance = urls("http://www.google.com")
>>> url_instance.scheme()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in scheme
AttributeError: type object 'urls' has no attribute 'split'
請注意,這可以解決您當前的錯誤,但是您的代碼不正確。 我將讓您弄清楚此錯誤是怎么回事。
類定義(或類型)與類實例之間的區別具有一些有趣的細微差別,但總的來說
class Thing:
pass
是一個類定義,並且
thing_instance = Thing()
是該類的一個實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.