用 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 网络访问管理器下载的文件去哪了?我该如何保存它?的主要内容,如果未能解决你的问题,请参考以下文章

nagios network analyzer:想知道你的带宽都去哪了吗?“我们”帮你把带宽找回来!

语音识别,录制的音频去哪了?

时间都去哪了-移动Web首屏优化实践

那些做了十年的老开发都去哪了?

那些做了十年的老开发都去哪了?

悟空,数据库自治了,那DBA去哪了?