为什么wget可以使用代理环境变量而ftplib不能?
Why can wget use proxy environment variables but ftplib cannot?
我真的很困惑,我确信我遗漏了一些简单的东西,但我不明白为什么设置代理环境变量对某些功能有效但对其他功能无效。是图书馆对这些变量的反应不同吗?
例如,我正在通过 ftp 来回传输文件。当我用 wget 下载时,我设置了代理环境变量并下载了,但后来说我想用 ftplib 把它放回去,它得到 [Errno 11001],我是否需要专门通过这些代理详细信息ftp库?
说我这样设置,我可以下载文件就好了:
# setup proxy
os.environ["ftp_proxy"] =
"http://****:****@proxyfarm.****.com:8080"
os.environ["http_proxy"] =
"http://****:****@proxyfarm.****.com:8080"
os.environ["https_proxy"] =
"http://****:****@proxyfarm.****.com:8080"
src = "ftp://****:****@ftp.blackrock.com/****/****.csv"
out = "C:\outFolder\outFileName.txt" # out is optional
# create output folder if it doesn't exists
outFolder, _ = os.path.split( out )
try:
os.makedirs(outFolder)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(outFolder):
pass
else: raise
# download
filename = wget.download(src, out)
现在紧接着,我切换到 ftplib,我得到 [Errno 11001],我是否需要专门为 ftplib 重置代理参数?
session = ftplib.FTP('ftp.blackrock.com','****','****')
file = open(filename,'rb') # file to send
session.storbinary('STOR '+ remotePath + filename, file) # send the file
file.close() # close file and FTP
session.quit()
ftp_proxy
(和其他)是 proprietary feature of the wget。
您不能指望它能与任何其他 FTP library/software 一起使用。
我真的很困惑,我确信我遗漏了一些简单的东西,但我不明白为什么设置代理环境变量对某些功能有效但对其他功能无效。是图书馆对这些变量的反应不同吗?
例如,我正在通过 ftp 来回传输文件。当我用 wget 下载时,我设置了代理环境变量并下载了,但后来说我想用 ftplib 把它放回去,它得到 [Errno 11001],我是否需要专门通过这些代理详细信息ftp库?
说我这样设置,我可以下载文件就好了:
# setup proxy
os.environ["ftp_proxy"] =
"http://****:****@proxyfarm.****.com:8080"
os.environ["http_proxy"] =
"http://****:****@proxyfarm.****.com:8080"
os.environ["https_proxy"] =
"http://****:****@proxyfarm.****.com:8080"
src = "ftp://****:****@ftp.blackrock.com/****/****.csv"
out = "C:\outFolder\outFileName.txt" # out is optional
# create output folder if it doesn't exists
outFolder, _ = os.path.split( out )
try:
os.makedirs(outFolder)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(outFolder):
pass
else: raise
# download
filename = wget.download(src, out)
现在紧接着,我切换到 ftplib,我得到 [Errno 11001],我是否需要专门为 ftplib 重置代理参数?
session = ftplib.FTP('ftp.blackrock.com','****','****')
file = open(filename,'rb') # file to send
session.storbinary('STOR '+ remotePath + filename, file) # send the file
file.close() # close file and FTP
session.quit()
ftp_proxy
(和其他)是 proprietary feature of the wget。
您不能指望它能与任何其他 FTP library/software 一起使用。