手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆

fabric 修改远程文件

首页 > python >
本文来源:http://www.metrodub.com/a/www.hbsc.cn/

重庆时时彩定胆 www.metrodub.com,在上世纪90年代,一拨又一拨美国中产阶级不堪工作压力、信用卡账单、家庭关系冷淡,退出消费轮回,找到自己的生活节奏。为何出现超规格的安排,得从前任和田地委书记身上说起。


其实对python真是一点都不熟,在用Fabric的时候,想修改远程服务器的文件,直接用open -> write 。却发现,修改的只能是本地文件,即使用with cd() : 进入目录,再调用 open ->write,也没用。

后来用了一个比较恶心的办法,适合修改小文件:

Python代码
  1. def modify(filename, searched, replaced):  
  2.     tmpfile = '/tmp/remote_temp.%s.txt' % os.getpid()  
  3.     get(filename,tmpfile)  
  4.     try:  
  5.         lines = open(tmpfile, 'r').readlines()  
  6.         flen = len(lines) - 1  
  7.         for i in range(flen):  
  8.             if searched in lines[i]:  
  9.                 lines[i] = lines[i].replace(searched, replaced)  
  10.         open(tmpfile, 'w').writelines(lines)  
  11.     except Exception, e:  
  12.         print e  
  13.     put(tmpfile,filename);  
  14.     os.remove(tmpfile)  

代码写的烂,但能用了!这里的get/put是fabric的一些方法。即:先下载下来,修改好后再put上去!

乱七八槽 的一些函数还有这些:

Python代码
  1. def modify2(filename, searched, replaced):  
  2.     tmpfile = '/tmp/remote_temp.%s.txt' % os.getpid()  
  3.     get(filename,tmpfile)  
  4.     try:  
  5.         lines = open(tmpfile, 'r').readlines()  
  6.         flen = len(lines) - 1  
  7.         for i in range(flen):  
  8.             for j in range(len(searched)):  
  9.                 if searched[j] in lines[i]:  
  10.                     lines[i] = lines[i].replace(searched[j], replaced[j])  
  11.         open(tmpfile, 'w').writelines(lines)  
  12.     except Exception, e:  
  13.         print e  
  14.     put(tmpfile,filename);  
  15.     os.remove(tmpfile)  
  16.   
  17. def modifyReg(filename, searched, replaced):  
  18.     tmpfile = '/tmp/remote_temp.%s.txt' % os.getpid()  
  19.     get(filename,tmpfile)  
  20.     try:  
  21.         lines = open(tmpfile, 'r').readlines()  
  22.         flen = len(lines) - 1  
  23.         for i in range(flen):  
  24.             lines[i], v = re.subn(searched, replaced, lines[i])  
  25.         open(tmpfile, 'w').writelines(lines)  
  26.     except Exception, e:  
  27.         print e  
  28.     put(tmpfile,filename);  
  29.     os.remove(tmpfile)  

纯记录。实在不知道怎么写好(其实也是不会写)




本站采用重庆时时彩定胆创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"重庆时时彩定胆", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):

小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
双色球中奖 湖南幸运赛车开奖彩票控 山东十一选五qq群 四川快乐12遗漏统计 北京pk10骗局全过程
超级大乐透开奖号码 七星彩南国论坛 快乐双彩今晚开奖结果 新疆福利彩票时时彩 新疆18选7开奖公告