我正在尝试使用 Python 以及 sys 和 urllib2 模块从 Internet 下载文件。该程序背后的总体思路是让用户输入他们要下载的文件的版本,例如 1_4。然后程序将用户输入和“/whateverfile.jar”添加到 url 并下载文件。当程序插入“/whateverfile.jar”而不是插入同一行时,程序将“/whateverfile.jar”插入新行时出现了我的问题。这会导致程序无法正确下载 .jar。
谁能帮我这个?代码和输出如下。
代码:
import sys
import urllib2
print('Type version of file you wish to download.')
print('To download 1.4 for instance type "1_4" using underscores in place of the periods.')
W = ('http://assets.file.net/')
X = sys.stdin.readline()
Y = ('/file.jar')
Z = X+Y
V = W+X
U = V+Y
T = U.lstrip()
print(T)
def JarDownload():
url = "T"
file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)
file_size_dl = 0
block_sz = 8192
while True:
buffer = u.read(block_sz)
if not buffer:
break
file_size_dl += len(buffer)
f.write(buffer)
status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
status = status + chr(8)*(len(status)+1)
print status,
f.close()
输出:
Type version of file you wish to download.
To download 1.4 for instance type "1_4" using underscores in place of the periods.
1_4
http://assets.file.net/1_4
/file.jar
我目前根本不调用 JarDownload() 函数,直到 URL 在打印到屏幕时显示为单行