我正在通过ftp下载二进制文件,它可以工作:
with open(my_file, mode='wb') as target:
ftp.retrbinary('RETR ' + my_file, target.write)
但是,当我尝试使用上下文管理器来改进我的代码时,它会创建一个零长度文件,并且无法下载内容:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
我尝试使用上下文管理器有什么问题?
答案 0 :(得分:1)
我想说你尝试使用上下文管理器没什么问题。
我使用您的确切代码(填写网站和文件名)从公共ftp站点(下面)下载文件。试一试。
当您更改代码以使用上下文管理器时,您可能更改了其他内容(您尚未向我们展示)。
import ftplib
def main():
ftp = ftplib.FTP("speedtest.tele2.net", user='anonymous', passwd='anonymous')
my_file = "5MB.zip"
with open(my_file, mode='wb') as target:
ftp.retrbinary('RETR ' + my_file, target.write)
if __name__ == '__main__':
main()