我很難理解第二個'打開'功能在這裏做什麼。瞭解多個python'打開'文件功能
所以,在第一個'開放'部分,我們基本上說過out = open(save_as_file, 'wb+')
,對吧? (對於使用'開放'仍然是新的)。我們稍後寫入它,然後'打開'自動關閉'out'文件。我得到的那部分 - 我們將這個響應對象從Requests中作爲二進制文件寫入指定的save_as_file位置,直到我們點擊第81920個字符,即我們的緩衝區#。
第二個'開放'發生了什麼?按照與上面相同的方式分解它,這幾乎是fp = open(save_as_file, 'r')
,對吧?這是什麼使得fp早已被分配了請求響應對象?我們只是打開save_as_file來使用它來閱讀,但不能讀取或提取任何東西,所以我沒有看到它的原因。如果有人能用英文解釋發生了什麼,以及第二個「開放」部分的目的,那將非常感激。
(不用擔心在年底load_from_file功能,這僅僅是類下的另一個功能)
def load_from_url(self, url, save_as_file=None):
fp = requests.get(url, stream=True,
headers={'Accept-Encoding': None}).raw
if save_as_file is None:
return self.load_from_file(fp)
else:
with open(save_as_file, 'wb+') as out:
while True:
buffer = fp.read(81920)
if not buffer:
break
out.write(buffer)
with open(save_as_file) as fp:
return self.load_from_file(fp)
HTTPS://www.p ython.org/dev/peps/pep-0343/ – Shashank