如何使用async tornado客户端为下载的文件命名

时间:2013-05-21 09:18:44

标签: python tornado

我有一些用于获取文件异步的python tornado代码

from tornado import ioloop , httpclient
def get_file(url):
    http_client = httpclient.AsyncHTTPClient()
    http_client.fetch(url,done)

def done()
    print "Done"
url = "http://localhost/files/ldfhgdksgfjkdfadf/output.pdf"
ioloop.IOLoop.instance().start()

会发生什么情况是文件以“output.pdf”的形式保存在当前目录中,是否有任何方法使用asynchttp客户端来指定文件名?如果我可以通过某个名称调用该文件并将其保存在当前目录以外的其他目录中。

1 个答案:

答案 0 :(得分:2)

如何在指定的回调中读取response.body并将其写入相应的文件,例如:

from tornado import ioloop, httpclient


def get_file(url):
    http_client = httpclient.AsyncHTTPClient()
    http_client.fetch(url, callback=done)


def done(response):
    with open("my_favorite_directory/my_favorite_filename.pdf", "w") as f:
        f.write(response.body)
    print "DONE"


get_file("http://samplepdf.com/sample.pdf")
ioloop.IOLoop.instance().start()