1. 程式人生 > >python把檔案從一個目錄複製到另外一個目錄,並且備份

python把檔案從一個目錄複製到另外一個目錄,並且備份

#!/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/GDSMT-8093'
bak_dir='/home/gdmt/mm/bak'
bbdir='/home/gdmt/mm/bak/gdsmt_bak'
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)

相關推薦

python檔案一個目錄複製另外一個目錄並且備份

#!/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=

拷貝一張圖片一個目錄另外一個目錄下(PS:是拷貝是不是移動)

close pan 圖片路徑 com oid 一個 != 文件路徑 while package com.lanxi.demo2_6; import java.io.File; import java.io.FileInputStream; import java.io.

Android 中如何一個App啟動另外一個App(如啟動支付界面、啟動地圖界面、應用商場下載App等場景)

!= oid 等等 信息 fault next -a return 5.1   假定兩個App,分別是A和B,當A運行某個功能需要啟動B,一種是啟動B應用,一種直接進入B的某個Activity。搜了很多資料,沒有一個完整的。下面就A--Android5.1.1、B--And

遷移表一個庫到另外一個

在這個庫中選中一張表,然後用export輸出到一個檔案中。employeeExport 在另外一個庫選中一個表,然後用import匯入,出現錯誤,可能是列不對應,然後嘗試刪除列,但最後一個列怎麼都刪除不掉,可能是db2 table至少要有一個列。 有一個方案,應該在一個庫建立

JSP頁面如何一個頁面傳遞一個引數到另外一個頁面

(1).一種是重定向跳轉,超連<a>就是一種重定向跳轉,這樣的跳轉request物件是傳不到下一個頁面的,下一個頁面得到的request物件是一個新的物件,而不是上一個頁面傳過來的就得不到上一個頁面的資料.如果你想通過這種方法跳轉的話,那就要用<a hre

檔案 File 遞迴 複製 字尾名 目錄 字串解析 MD

Markdown版本筆記 我的GitHub首頁 我的部落格 我的微信 我的郵箱 檔案 File 遞迴複製 修改後綴名 生成Markdown目錄 字串解析 MD 目錄 使用方式 工具類的作用:生成GitHub上廠庫MyAndroidBlogs的REANME.MD

使用sed在一個檔案中指定位置插入另外一個檔案的內容-r命令的使用

在一個檔案的指定位置,比如說匹配到了一個單詞的行的下一行開始插入另外一個檔案的全部內容,可以使用sed的r命令。 [email protected]:~/aa$ cat data here is a test naughty loves cc and so on

Python資料Word(.docx)中讀出來寫入到Excel(.xlsx)中

左側Word的每一行是一段,是一些非結構化資料,目標是把它結構化表示成右側的excel格式。需要匯入的包:import docx from docx import Document from openpyxl import Workbook from tools import

python 檔案中每列的第一個值作為字典中的key鍵值索引

所讀取的檔案內容: 20160309,2839.41,2863.01,2811.72,2862.56,183355383,177072553984.00 20160310,2847.57,2863.18,2803.48,2804.73,138979461,14181241

一個應用進入另外一個應用

     // 獲取應用的Activity名      PackageManager pm = getPackageManager();      PackageInfo info = null;      try {       info = getPackageManager().getPackageIn

如何用一個app操作另外一個app.比如微信群控那樣的

target html ref repl reply 如何實現 tle net htm 如何實現一個app.控制另外的app,比如市面上群控微信的,是用測試工具的原理?還是什麽模擬點擊的原理?

SQL查詢一個表中另外一個表不存在的數據-轉

spa 使用 左連接 lec left join count tis 相對 statistic #方法一:使用 not in ,容易理解,效率低 ~執行時間為:1.395秒~SELECT COUNT(1) FROM ecs_goods WHERE ecs_goods.

C++中一個類訪問另外一個類的成員變數或者成員函式

1.在一個類中定義另外一個類的成員為指標型別。並用this指標管理物件的記憶體,實現資料的傳遞。 #include <stdio.h> class A { public: A(); ~A(); void SetData(int year, int month, int day);

vue中methods一個方法呼叫另外一個方法

vue在同一個元件內; methods中的一個方法呼叫methods中的另外一個方法 可以在呼叫的時候 this.$options.methods.test2(); this.$options.methods.test2();一個方法呼叫另外一個方法; new Vue({

在同一個類中一個方法呼叫另外一個有註解(比如@Async@Transational)的方法註解失效的原因和解決方法

在同一個類中,一個方法呼叫另外一個有註解(比如@Async,@Transational)的方法,註解是不會生效的。 比如,下面程式碼例子中,有兩方法,一個有@Transational註解,一個沒有。如果呼叫了有註解的addPerson()方法,會啟動一個Transaction;如果呼叫updatePerso

c#下不同名稱空間的引用(一個project使用另外一個project的名稱空間)

http://bbs.csdn.net/topics/300089064 兩個名稱空間在同一個專案中時,沒有任何問題。若兩個名稱空間不在同一個專案中,則變成兩個程式集之間的互相引用。程式集之間的引用無所謂迴圈不迴圈的問題。但如果兩個程式集要互相引用,並且兩個程式集專案在一

[安卓開發基礎] 通過包名啟動一個APP 的 某一個Activity 或者另外一個app

 通過包名稱啟動同一個應用不同包名稱下的 Activity   //第一個引數為工程包名 可以直接使用 this,第二個為啟動的Actvity 完整路徑。填寫錯誤會提示  Activity  找不到。 Intent inten

Java演算法面試題(003) 如何檢查一個字串是另外一個字串的旋轉字串

宣告:本文為本博主翻譯,未經允許,嚴禁轉載! 簡介 編寫一個程式來檢查一個字串是否是另一個字串的旋轉字串是一個常見的編碼問題,你將在程式設計工作面試中看到。一個字串被認為是另一個字串的旋轉,如果它具有相同的長度,包含相同的字元,並且圍繞其中一個字元旋轉。例如,字串“bcda

一個點圍繞另外一個點旋轉一定角度的新座標

(x1,y1)為要轉的點,(x2,y2)為中心點,如果是順時針角度為θ, x=(x1-x2)cosθ-(y1-y2)sinθ+x2 y=(y1-y2)cosθ+(x1-x2)sinθ+y2 假設對圖片上任意點(x,y),繞一個座標點(rx0,ry0)逆時針旋轉a角度

向量 ——2D(如何判斷一個向量在另外一個向量的哪一側)

如上圖在向量W,U,V中,和a,b,c中,分別是兩種情況,W,V分別在U的一側,而b,c都在a向量的同一側。 我們先給出結論,如果有向量A,B,C ,且 A叉乘B=k1,A叉乘C=k2, 若,k1,k2同為正數,或者同為負數,則B,C向量在A的同一側,反之分別在一側。(