用 PyQt5 网络访问管理器下载的文件去哪了?我该如何保存它?
Posted
技术标签:
【中文标题】用 PyQt5 网络访问管理器下载的文件去哪了?我该如何保存它?【英文标题】:Where did file downloaded with PyQt5 network access manager go? And how do I save it? 【发布时间】:2015-05-14 20:58:11 【问题描述】:没有指定要保存的文件,我创建了这个:
def start_download(self):
self.reply = self.manager.get(QNetworkRequest(QUrl(self.url_edit.text())))
self.reply.downloadProgress.connect(self.download_progress)
self.label.setText(self.url_edit.text())
def download_progress(self, received, total):
print(received, type(received))
我提到的最后一个函数确实写入了接收到的字节。于是,就下载好了。如果我没有指定保存路径,它去了哪里?我怎样才能保存它?
【问题讨论】:
【参考方案1】:回复是QNetworkReply,它是QIODevice 的子类。所以,它大致相当于python中的类文件对象。
文件下载后,您应该可以执行以下操作:
data = self.reply.readAll().data()
这将为您提供一个可以以通常方式保存到磁盘的python字节字符串。
【讨论】:
那么,是不是不能暂停下载再恢复呢? @BagolDaplun。这与您提出的问题无关,即如何读取和保存文件。 糟糕。抱歉,因为您提到了下载完成后调用的readAll
,所以我遇到了暂停和恢复问题。但是,你的答案适合这个问题,无论如何谢谢;)。顺便说一句,我的问题中的where did
部分仍然让我很好奇。以上是关于用 PyQt5 网络访问管理器下载的文件去哪了?我该如何保存它?的主要内容,如果未能解决你的问题,请参考以下文章