0

打开并读取大于 500mb 的文件时出现错误“内存错误”。如果它小于 500mb 它可以完美地工作.. 我使用我的进度条最大值的大小

    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)
4

2 回答 2

1

因此, filein.read() 实际上读取(即下载)文件并消耗您的内存。
您可以改为使用

self.size = self.ftp.size(self.filename)
于 2011-05-19T05:26:21.750 回答
0

不要使用该read()方法,因为它将整个文件读入字符串。您应该使用该os.stat()函数来获取文件元数据,该元数据返回一个带有 member 的 stat 结构st_size。这是文件的字节大小。您不必先阅读全部内容。

对于发送,还可以循环读取和写入块(例如 16kB)。

于 2011-05-19T06:29:07.867 回答