Python Webhook下载和上传具有不同扩展名的文件

时间:2016-02-13 09:03:28

标签: python urllib2 webhooks

我正在制作一个Python Webhook来拦截包含文件附件网址的FormStack数据(以JSON格式发送)。我需要下载文件附件并通过SendGrid API将其作为邮件附件发送。

SendGrid API需要文件名和路径作为附加文件的参数。 message.add_attachment('stuff.txt', './stuff.txt')

我提到了urllib2,但我似乎无法找到一种方法来下载任何扩展名的文件,并获取其位置以便进一步上传。

2 个答案:

答案 0 :(得分:0)

将其下载到临时文件,例如使用tempfile
关键线(简化):

s = urllib2.urlopen(url).read()
tf = tempfile.NamedTemporaryFile(suffix='.txt', delete=False)  # OPT: dir=mytempdir
tf.write(s)
path = tf.name
tf.close()

答案 1 :(得分:0)

完整详细的代码对我有用

import tempfile
import sendgrid

url = 'your download url'
file_name = file_name = url.split('/')[-1]
t_file = tempfile.NamedTemporaryFile(suffix=file_name, dir="/mydir_loc" delete=False) 

# Default directory is '/tmp' but you can explicitly mention a directory also  
# Set Delete to True if you want the file to be deleted after closing

data = urllib2.urlopen(url).read()
t_file.write(data)

# SendGrid API calls
message.add_attachment(file_name, tf.name)
status, msg = sg.send(message)

t_file.close()