#!/usr/bin/python
# -*- coding: utf-8 -*-
import os,sys,md5,datetime,shutil,time,zipfile,chardet # coding=utf-8
#pub_path='/home/gdmt/mm'
pub_dir=''
src_dir='/home/gdmt/mm/ssss'
bak_dir='/home/gdmt/mm/bak'
bbdir='/home/gdmt/mm/bak/bbbb'
def pub(pub_file):
#遍历filepath下所有文件,包括子目录
files = os.listdir(pub_file)
for fi in files:
fi_d = os.path.join(pub_file,fi)
if os.path.isdir(fi_d):
is_exists=os.path.exists(fi_d.replace(pub_dir,src_dir))
if not is_exists:
shutil.copytree(fi_d,fi_d.replace(pub_dir,src_dir))
#print chardet.detect(fi_d)
#print fi_d.decode("gbk").encode("utf-8")
print 'publish dir:'+fi_d.replace(pub_dir,src_dir)
is_exists=os.path.exists(fi_d.replace(pub_dir,bak_dir))
if not is_exists:
os.mkdir(fi_d.replace(pub_dir,bak_dir))
pub(fi_d)
else:
#back
#print 'pub_dir:'+pub_dir
#print 'src_dir:'+src_dir
#print 'bak_dir:'+bak_dir
#print 'fi_d:'+fi_d
#print 'publish file:'+fi_d.replace(pub_dir,src_dir)
is_exists=os.path.exists(fi_d.replace(pub_dir,src_dir))
#is_exists2=os.path.exists(fi_d.replace(pub_dir,bak_dir))
#print is_exists
#print fi_d.replace(pub_dir,bak_dir)
if is_exists:
print 'bak file:'+fi_d.replace(pub_dir,bak_dir)
shutil.move(fi_d.replace(pub_dir,src_dir),fi_d.replace(pub_dir,bak_dir))
#publish
shutil.copyfile(fi_d,fi_d.replace(pub_dir,src_dir))
print 'publish file:'+fi_d.replace(pub_dir,src_dir) def un_zip(file_name,unzip_dir):
"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(unzip_dir):
pass
else:
os.mkdir(unzip_dir)
for names in zip_file.namelist():
#print chardet.detect(names)
#ss=names.decode('ascii')
#print ss
#ss=ss.encode('utf-8')
#print ss
zip_file.extract(names,unzip_dir)
zip_file.close() def cov_unicode(s):
return s.decode('ascii').encode('utf-8') file_name=sys.argv[1]
#zip_file='/home/gdmt/mm/pub/'+sys.argv[1]+'.zip'
pub_file='/home/gdmt/mm/pub/'+sys.argv[1]
pub_dir='/home/gdmt/mm/pub'
now = datetime.datetime.now()
t_str = now.strftime('%Y%m%d%H%M%S')
bak_dir=bbdir+'_'+t_str
shutil.copytree(bbdir,bak_dir)
#is_exists=os.path.exists(pub_file)
print ''
#if is_exists:
# print 'rm '+pub_file
# os.popen('rm -rf '+pub_file)
#print 'unzip:'+zip_file
#os.unzip(pubfile)
#output=os.popen('unzip '+zip_file)
#un_zip(zip_file,pub_dir)
#print 'waiting unzip ...'
#time.sleep(3)
#os.popen('mv '+file_name +' '+pub_dir)
#zip_dir='/home/gdmt/mm/py/'+file_name
#print ''
#print 'zip_dir:'+zip_dir
#print 'pub_dir:'+pub_file
#print '' #shutil.move(zip_dir,pub_dir)
#time.sleep(1)
#os.popen('mv '+zip_dir+' '+pub_dir)
#os.popen('rm -rf /home/gdmt/mm/py/'+file_name)
# start publist ...
pub_dir=pub_file
pub(pub_file)

配合自动发布的shell脚本:需要先做ssh信任

#!/bin/bash
pub_path = $1 ssh gdmt@1.1.1.19 << remotessh
cd /home/gdmt/mastercom/py
./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "===================138.19 end=================================" sleep 3 ssh gdmt@1.1.1.20 << remotessh
cd /home/gdmt/mastercom/py
./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "===================138.20 end=================================" sleep 3 ssh gdmt@1.1.1.21 << remotessh
cd /home/gdmt/mastercom/py
./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "===================138.21 end=================================" sleep 3 ssh gdmt@1.1.1.22 << remotessh
cd /home/gdmt/mastercom/py
./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "====================138.22 end================================" sleep 3 ssh gdmt@1.1.1.31 << remotessh
cd /home/gdmt/mastercom/py
sudo ./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "===================138.31 end=================================" sleep 3 ssh gdmt@1.1.1.32 << remotessh
cd /home/gdmt/mastercom/py
sudo ./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "==================138.32 end==================================" sleep 3 ssh gdmt@1.1.1.33 << remotessh
cd /home/gdmt/mastercom/py
sudo ./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
exit
remotessh
echo "==================138.33 end==================================" sleep 3 #ssh gdmt@1.1.1.37 << remotessh
cd /home/gdmt/mastercom/py
sudo ./pub_gdmt.py $1
sudo service tomcat stop
sudo service tomcat start
#exit
#remotessh echo "===================138.37 end=================================="
#ssh gdmt@1.1.1.33 << remotessh #exit
#remotessh

python把文件从一个目录复制到另外一个目录,并且备份的更多相关文章

  1. java 把一个文件夹里图片复制到另一个文件夹里

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...

  2. 图片的copy,从一个目录复制到另一个目录

    代码: public function index(){ $path='G:/相片/2014.9.8深圳莲花山/IMG_1282.JPG'; $path=iconv('utf-8','gb2312', ...

  3. 将一个dropdownlist从一个div复制到另一个div

    <select id="dropdwon1"> <option value=">Item1</option> <option v ...

  4. Python OS 文件/目录方法

    Python OS 文件/目录方法 os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: 序号 方法及描述 1 os.access(path, mode) 检验权限模式 2 os. ...

  5. 3 Python os 文件和目录

    ile 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 2 file.flush() ...

  6. python之文件

    文件打开函数:f = open 表1-1:open函数中模式参数常用值 打开模式 描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '+' 读/写模式 表1-2:文件对象方法 ...

  7. Python OS 文件

    Python OS 文件: 1 os.access(path, mode) 检验权限模式 2 os.chdir(path) 改变当前工作目录 3 os.chflags(path, flags) 设置路 ...

  8. python 读取文件read.csv报错 OSError: Initializing from file failed

    小编在用python 读取文件read.csv的时候 报了一个错误 OSError: Initializing from file failed 初始化 文件失败 检查了文件路径,没问题 那应该是我文 ...

  9. (转)SqlServer将数据库中的表复制到另一个数据库

    本文为转载地址为:http://jingyan.baidu.com/article/d5c4b52bc5c102da570dc547.html 复制表结构 在使用SqlServer的过程中,我们可能需 ...

随机推荐

  1. day7接口开发

    一.数据库操作, 1.创建游标时指定游标类型为字典,返回值类型为字典,方便取值 cur = coon.cursor(cursor=pymysql.cursor.Dictursor) 2.获取执行查询S ...

  2. selenium3 文件系列之------读取properties文件

    一个eclipse工程会有很多配置文件,有的配置文件是写在properties里,也有写在xml文件里的.这个总结一下是自动化测试是如何读取properties文件. 一.准备config.prope ...

  3. RWA风险加权资产

    风险加权资产(risk-weightedassets,简称RWA)是指对银行的资产加以分类,根据不同类别资产的风险性质确定不同的风险系数,以这种风险系数为权重求得的资产. 分为权重法和内评法. 内评法 ...

  4. GMA Round 1 极坐标的愤怒

    传送门 极坐标的愤怒 我也想被积分啊!可是为什么你们从来不知道我的心意!——极坐标 愤怒会夺走理智,哪怕是被迫的也好,请为极坐标方程$r=t$(也写作$ρ=θ$)积分吧. 为了考验你的忠诚,你需要回答 ...

  5. 两个UITableView的级联菜单

    效果 源码 https://github.com/YouXianMing/Animations 说明 1. TwoLevelLinkageView封装了两个tableView,左边tableView中 ...

  6. chmod不起作用的原因分析 - Linux下查看分区文件系统类型

    chmod不起作用 可能的原因: chmod对应的是windows下的一个磁盘分区,ntfs不支持linux权限 附:Linux下如何查看分区文件系统类型 1,fdisk -l fdisk -l 只能 ...

  7. Scala编程进阶

    跳出循环语句的3种方法... 2 多维数组... 3 Java数组与Scala数组缓冲的隐式转换... 3 Java Map与Scala Map的隐式转换... 3 Tuple拉链操作... 4 内部 ...

  8. update使用inner join

    一.update 基础语法 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 上面是我们常见的更新表的方式,其实我们还可以去另外一张表的数据来更新当前的表数据,如现在就有这 ...

  9. [Python设计模式] 第19章 分公司=部门?——组合模式

    github地址:https://github.com/cheesezh/python_design_patterns 组合模式 组合模式,将对象组合成树形结构以表示"部分-整体" ...

  10. Pilosa文档翻译(一)导言、安装

    目录 导言 安装 安装在MacOS 使用HomeBrew 下载二进制文件 从源码构建 使用Docker 安装在Linux 下载二进制文件 从源码构建 使用Docker 接下来是什么? 导言 原文地址 ...