python怎么備份列表_python實例:backup 備份

python實例:backup 備份

本文來源于《python簡明教程》中的實例

1.?提出問題: 我想要一個可以為我的所有重要文件創建備份的程序。

2. 分析明確問題:我們如何確定該備份哪些文件?備份保存在哪里?我們怎么樣存儲備份?

3. 設計程序列表:

1). 需要備份的文件和目錄由一個列表指定。

2). 備份應該保存在主備份目錄中。

3). 文件備份成一個zip文件。

4). zip存檔的名稱是當前的日期和時間。

4. 編寫代碼:

版本1:

#Filename: backup_ver1.py

importosimporttime#1. The files and directories to be backed up are specified in a list.

source = r'c:\python34'

#2. The backup must be stored in a main backup directory

target_dir = r'c:\python34\scripts' #Remember to change this to what you will be using

#3. The files are backed up into a rar file.#4. The name of the rar archive is the current date and time

target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.rar'

#5. We use the rar command in windows to put the files in a zip archive,you must to be sure you have installed WinRARA and that in your path

rar_command = r'"C:\Program Files\WinRAR\WinRAR.exe" A %s %s -r' %(target,source)#Run the backup

if os.system(rar_command) ==0:

print ('Successful backup to',target)else:print ('Backup FAILED' )

分析:

1. ?注意,source、target_dir地址都可以你任意指定。source是指向的是需要備份的文件,target_dir指向的是需要保存的地址。

source = r'e:\code'target_dir= r'e:\code'

2.?zip archive壓縮文檔的名稱用target來指定; 其中運用了

加法操作符來級連字符串(即把兩個字符串連接在一起返回一個新的字符串);time.strftime()返回當前的時間;‘.rar’ 擴展名;

字符串join方法把source列表轉換為字符串。source可以換成‘’.join(source),貌似只能用這‘’,里面不能加入其它符號。

你一定要將WinRAR的路徑放到你的環境變量里面,然后才能直接使用WinRAR命令行。或者你要加上WinRAR的安裝路徑像這樣:

rar_command = r'"C:\Program Files\WinRAR\WinRAR.exe" A %s %s -r' % (target,source)

3. ?zip命令有一些選項和參數。??rar_command ="zip -qr '%s' %s"% (target,source)。

-q選項用來表示zip命令安靜地工作。 -r選項表示zip命令對目錄遞歸地工作,即它包括子目錄以及子目錄中的文件。兩個選項可以組合成縮寫形式-qr。所以自己查詢相關的幫助文檔。

但是自己在cmd命令行中輸入 zip可以查詢到相關的-q選項,可是沒有具體的實例。在ST3中輸入help('zip'),有內容,但是一點兒也沒幫助,查詢了python.doc文檔,用搜索檢索有zip模塊,但是里面的內容很多不相關,這怎樣查詢這個相關的幫助文檔呀? 還有在cmd中搜索 winrar卻沒有?

在cmd命令中有如下文檔說明,這有點像一種格式,

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

對應著:rar_command ="zip -qr '%s' %s"% (target,source)。其中 target 對應著[-b path] [-t mmddyyyy] [-n suffixes](注:suffixes 后綴 意思)

因為前面target指向的是壓縮文檔的名稱,包含了(目錄名+時間+后綴):target?=?target_dir?+?time.strftime('%Y%m%d%H%M%S')?+?'.rar'

所以[-options] 對應著 -qr,source對應著[zipfile list],那么[-xi list]對應著什么呢? 好像[-]這個表示可選項。

比如:

if os.system(XX命令) == 0:

print 'Successful!‘

那按以上這個例子,os.system命令應該返回0了,為什么?linux命令都是返回0代表成功,這是一個習慣,基本沒有人用返回值0代表命令失敗.所以 os.system(命令) 如果返回為0則帶便命令執行成功了.具體返回其他數值代表什么意思,就要看具體命令是什么了.比如最常用的 ls 命令, 有三個返回值:0 代表成功1 代表小問題2 代表大問題

你可以使用os.system(ls)試試。。這是linux系統。windows的話使用os.system(dir)試試

這個命令是執行系統命令的,這個命令在命令行下執行,返回的永遠是0。在窗口模式下,是所執行命令的返回值。

import os

cmd=r'c:\"Program Files"\notepad.exe c:\Program Files\1.txt'

os.system(cmd)

注意點:cmd中的命令的路徑出現空格需要用引號,后面的文件路徑不需要引號。

版本2:

關于zip

參考:python在windows下 完成文件備份的例子?: ? http://blog.csdn.net/qustdjx/article/details/7837619

補充:python執行系統命令的方法?os.system(),os.popen(),commands: ?http://blog.sina.com.cn/s/blog_5d24f0450101hc4w.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode1466. 重新規劃路線(dfs)

n 座城市,從 0 到 n-1 編號,其間共有 n-1 條路線。因此,要想在兩座不同城市之間旅行只有唯一一條路線可供選擇(路線網形成一顆樹)。去年,交通運輸部決定重新規劃路線,以改變交通擁堵的狀況。 路…

mysql數學函數名_Mysql數學函數

所有的數學函數在發生錯誤的情況下,均返回 NULL。-一元減。改變參數的符號:mysql> SELECT - 2;-> -2注意,如果這個操作符被用于一個 BIGINT,返回值也是一個 BIGINT!這就意味著,應該避免在一個可能有值…

angular 漸進_如何創建具有Angular和無頭CMS的漸進式Web應用程序

angular 漸進by Ondrej Chrastina通過Ondrej Chrastina 如何創建具有Angular和無頭CMS的漸進式Web應用程序 (How to create a progressive web app featuring Angular and headless CMS) Have you ever wondered how a headless Content Management System fits in with Progr…

win10不用第三方工具激活的方法

步驟:1、本機上裝個win7旗艦版,這個得拿第三方工具激活一下,當然你如果已經購買了正版更沒問題了。第三方工具推薦那個啥啥loader,記住:chew_wga系列的暴力工具是不行的哦;2、把需要安裝的win10官方安裝鏡像…

CentOS 7 搭建 LAMP

一、安裝httpd 1、yum install httpd -y 2、啟動服務:systemctl start httpd 3、設置開機啟動:systemctl enable 二、安裝mariadb 1、yum groupinstall mariadb 2、啟動服務:systemctl start mariadb 3、設置開機啟動:systemctl e…

quartz教程二

轉載于:https://www.cnblogs.com/mumian2/p/10729901.html

python hookapi_pytest文檔70-Hook鉤子函數完整API總結?

pytest_collectstart(collector: Collector) 收集器開始收集。pytest_make_collect_report(collector: Collector) 執行collector.collect()并返回一個CollectReport。pytest_itemcollected(item: Item) 我們剛剛收集了一個測試項目。pytest_collectreport(report: Coll…

出現字跡模糊跡象_改變跡象:如何使用動態編程解決競爭性編程問題

出現字跡模糊跡象by Sachin Malhotra由Sachin Malhotra 改變跡象:如何使用動態編程解決競爭性編程問題 (Change the signs: how to use dynamic programming to solve a competitive programming question) If you’re a competitive programmer like I am, one of…

leetcode695. 島嶼的最大面積(dfs)

給定一個包含了一些 0 和 1 的非空二維數組 grid 。一個 島嶼 是由一些相鄰的 1 (代表土地) 構成的組合,這里的「相鄰」要求兩個 1 必須在水平或者豎直方向上相鄰。你可以假設 grid 的四個邊緣都被 0(代表水)包圍著。找到給定的二維數組中最大…

python把圖片轉為字符畫_Python 實現圖片轉換為字符畫

主要使用 pillow如果沒有安裝 使用 pillow install pillow 安裝一下看代碼&#xff1a;from PIL import Imageimport argparse#字符畫所用的字符集ascii_char list("$B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_~<>i!lI;:,\"^. ")def get…

冒泡的三種寫法

學而時習之&#xff0c;不亦說乎&#xff01; --《論語》 package com.zby.bubble;import java.util.Arrays; /*** * <class description>簡單初級冒泡算法java實現* author zby**/ public class PrimaryBubble {public static void main(String[] args) {int[] arr { 1…

76. Minimum Window Substring

最后更新 一刷 08-Jan-2017 昨天Amazon group面結束&#xff0c;剛回家。 國內以前喜歡的女生結婚了&#xff0c;嘿嘿...好開心呀~~ 這次面試感覺自己的做法完爆別人&#xff0c;比什么2 greedy好多了 總之表現比想象的好&#xff0c;最后一面的面試官真是聰明得一逼&#xff…

day 02 python 基礎

1.day1作業講解 題目答案見day1 2.格式化輸出 %占位符&#xff0c;s:字符串&#xff0c;d&#xff1a;數字 %%只是單純的顯示%&#xff08;顯示的%是后面的&#xff09; 1 #格式化輸出2 # % s d3 # name input(請輸入姓名)4 # age input(請輸入年齡)5 # height input(請輸入…

python多維數據劃分_【python+機器學習(4)】多維數據的特征選取(RidgeLasso)...

歡迎關注哈希大數據微信公眾號【哈希大數據】在之前我們介紹了直接使用線性回歸進行波士頓房價的預測&#xff0c;但是預測準確率僅有60%左右。預測準確率不高一方面是我們未對數據進行一定的預處理(包括歸一化和標準化等)&#xff0c;這樣不能確保在使用優化方式時&#xff0c…

leetcode64. 最小路徑和(dp)

給定一個包含非負整數的 m x n 網格&#xff0c;請找出一條從左上角到右下角的路徑&#xff0c;使得路徑上的數字總和為最小。說明&#xff1a;每次只能向下或者向右移動一步。示例:輸入: [[1,3,1],[1,5,1],[4,2,1] ] 輸出: 7 解釋: 因為路徑 1→3→1→1→1 的總和最小。代碼 …

mysql淺拷貝_深拷貝與淺拷貝

在Python中&#xff0c;對象賦值實際上是對象的引用。當創建一個對象&#xff0c;然后把它賦給另一個變量的時候&#xff0c;Python并沒有拷貝這個對象&#xff0c;而只是拷貝了這個對象的引用。1、淺拷貝&#xff1a;利用切片操作、工廠方法list方法拷貝2、深拷貝&#xff1a;…

盤州市“檢企聯合” 探索大數據應用新路

為認真貫徹落實“科技強檢”及推進大數據應用的決策部署&#xff0c;8月31日&#xff0c;盤州市人民檢察院組織召開以“檢察大數據”為主題的“兩長”座談會。市經信局、中國移動盤州分公司、中國電信盤州分公司等單位負責人&#xff0c;檢察院在家班子成員及院各部門主要負責人…

iOS中的顏色

最近在改Bug的時候&#xff0c;才注意到iOS 中的顏色竟然也大有文章&#xff0c;特來記錄一下。 先說一下問題&#xff0c;因為某界面中有用xib實現的一個view&#xff0c;而這個view 只在UIColletionView的layout 里通過nib 注冊使用&#xff0c;為這個xib設置了背景色&#x…

編程面試中需要了解的5件事

This article is intended for those who are trying to start their programming career, or are preparing to interview for their dream job. As someone who’s been on both sides of the interviewing table, I understand how it feels to be the interviewee.本文適用…

多線程的基礎知識

1、程序、進程、線程的基本概念 程序&#xff1a;為了完成某種任務用某一種語言編寫的一組指令的集合就叫程序。程序就是一段靜態的代碼。 進程&#xff1a;進程是程序的依次執行過程&#xff0c;或者說是正在運行的一個程序。這是一個動態的過程&#xff0c;有它自身的產生運行…