打开时出现“内存错误”错误并读取大于500mb的文件。 如果它小于500mb它完美地工作.. 即时通讯使用我的进度条的maxvalue
的大小 self.ftp = FTP(hostname)
self.ftp.login(user, password)
self.f = open(self.filename,'rb')
with open(self.filename,'rb') as filein:
self.size = filein.read()
self.size = len(self.size)
答案 0 :(得分:1)
因此,文件in.read()实际上读取(即下载)文件并消耗你的记忆 您可以改为使用
self.size = self.ftp.size(self.filename)
答案 1 :(得分:0)
不要使用read()
方法,因为它将整个文件读入字符串。您应该使用os.stat()
函数来获取文件元数据,该元数据返回包含成员st_size
的统计结构。这是文件的大小(以字节为单位)。您不必先阅读所有内容。
用于发送,也可以在循环中以块(例如16kB)读入和写出。