孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
python批量上传图片到Flickr(linux)
时间:2010-09-30 08:58来源:未知 作者:admin 点击: 214次

前提条件:
1、安装Python flickr api库
首先安装easy_install

  wget http://peak.telecommunity.com/dist/ez_setup.py

现在以后,安装:

  sudo python ez_setup.py

安装成功以后,安装flikcr库

  sudo easy_install flickrapi

2、申请一个flick api key,不再废话了,非常简单。

开始,一个Simple程序:

  1. #!/usr/bin/python 
  2.  
  3. import flickrapi 
  4. import os 
  5. import time 
  6.  
  7. #填入申请的api_key和secret_key 
  8. api_key ='Flickr api key' 
  9. secret_key='Flickr api secret key' 
  10.  
  11. flickr = flickrapi.FlickrAPI(api_key,secret_key) 
  12. (token, frob) = flickr.get_token_part_one(perms='write'
  13. if not token: 
  14.     raw_input('Press enter after authorized this program'
  15.  
  16. flickr.get_token_part_two((token,frob)) 
  17.  
  18. #一个类,防止重复上传 
  19. class UploadHistory: 
  20.     def __init__(self,filename='uh.dat'): 
  21.         self.filename=filename 
  22.         self.uploads=[] 
  23.     def readcfg(self): 
  24.         if os.path.exists(self.filename): 
  25.             f=open(self.filename,'r'
  26.             for line in f.readlines(): 
  27.                 self.uploads.append(line[0:-len(os.linesep)]) 
  28.  
  29.             f.close() 
  30.  
  31.     def writecfg(self): 
  32.         f=open(self.filename,'w'
  33.         for up in self.uploads: 
  34.             f.write(up+os.linesep) 
  35.  
  36.         f.close() 
  37.  
  38.     def isUploaded(self,filename): 
  39.         if self.uploads.count(filename)>0
  40.             return True 
  41.         else
  42.             self.uploads.append(filename) 
  43.             return False 
  44.  
  45.     def addUpload(self): 
  46.         pass 
  47.  
  48. #上传一个目录下面的文件 
  49. homedir=os.environ['HOME'
  50. today=time.strftime('%Y-%m-%d'
  51. savedir=homedir+'/temp/'+today 
  52.  
  53. files=os.listdir(savedir) 
  54. uh=UploadHistory() 
  55.  
  56. for f in files: 
  57.     if f[-4:]=='.jpg'
  58.         rf = savedir + '/' + f 
  59.     if not uh.isUploaded(rf): 
  60.             flickr.upload(filename=rf,tags='iheartchaos',is_public=0
  61.  
  62. uh.writecfg() 

第一次运行,需要Web验证,以后就不需要了。

posted on 2011-04-22 12:11  孤独的猫  阅读(705)  评论(0编辑  收藏  举报