最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來(lái)的方法

 更新時(shí)間:2015年03月05日 15:26:22   作者:零度C  
這篇文章主要介紹了Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來(lái)的方法,涉及Python針對(duì)文件與文件夾的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來(lái)的方法。分享給大家供大家參考。具體如下:

這個(gè)東東本來(lái)是做來(lái)給公司數(shù)據(jù)同步用的:新服務(wù)器還沒(méi)正式啟用,舊的服務(wù)器還在使用,每天都有大量圖片傳到舊服務(wù)器上面,為了避免備份全部圖片,所以寫(xiě)了這么個(gè)工具。

1. 運(yùn)行效果如下圖所示:

2. Python代碼如下:    

復(fù)制代碼 代碼如下:
# coding=gbk
'''
Created on 2011-1-7
@author: HH
'''
import os,ConfigParser
'''
遞歸列出某目錄下的文件,放入List中
'''
def listDir (fileList,path):
    files=os.listdir(path)
    for i in  files:
        file_path=path+"\\"+i
        if os.path.isfile(file_path):
            fileList.append(file_path)
    for i in files:
        file_path=path+"\\"+i
        if os.path.isdir(file_path):
            #fileList.append(file_path)
            listDir(fileList,file_path)
    return fileList
'''
將List中內(nèi)容寫(xiě)入文件
'''
def writeListToFile(list,path):
    strs="\n".join(list)
    f=open(path,'wb')
    f.write(strs)
    f.close()
'''
讀入文件內(nèi)容并放入List中
'''
def readFileToList(path):
    lists=[]
    f=open(path,'rb')
    lines=f.readlines()
    for line in lines:
        lists.append(line.strip())
    f.close()
    return lists
'''
比較文件--以Set方式
'''
def compList(list1,list2):
    return list(set(list1)-set(list2))
'''
復(fù)制List中文件到指定位置
'''
def copyFiles(fileList,targetDir):
    for file in fileList:
        targetPath=os.path.join(targetDir,os.path.dirname(file))
        targetFile=os.path.join(targetDir,file)
        if not os.path.exists(targetPath):
            os.makedirs(targetPath)
        if not os.path.exists(targetFile) or (os.path.exists(targetFile) and os.path.getsize(targetFile)!=os.path.getsize(file)):
            print "正在復(fù)制文件:"+file
            open(targetFile,'wb').write(open(file,'rb').read())
        else:
            print "文件已存在,不復(fù)制!"
if __name__ == '__main__':
    path=".svn"
    #獲取源目錄
    txtFile="1.txt"
    #目錄結(jié)構(gòu)輸出的目的文件
    tdir="cpfile"
    #復(fù)制到的目標(biāo)目錄
    cfFile="config.ini";
    #配置文件文件名
    fileList=[]
    #讀取配置文件
    if(os.path.exists(cfFile)):
        cf=ConfigParser.ConfigParser()
        cf.read(cfFile)
        path=cf.get("main", "sourceDir")
        txtFile=cf.get("main","txtFile")
        tdir=cf.get("main","targetDir")
    else:
        print "配置文件不存在!"
        raw_input("\n按 回車鍵 退出\n")
        exit()
    if(os.path.exists(txtFile)):
        #如果導(dǎo)出的文件存在,就讀取后比較
        list1=readFileToList(txtFile)
        print "正在讀取文件列表……"
        fileList=listDir (fileList,path)
        print "正在比較文件……"
        list_res=compList(fileList,list1)
        if len(list_res)>0:
            print "以下是原目錄中不存在的文件:\n"
            print "\n".join(list_res)
            print "\n共計(jì)文件數(shù):"+str(len(list_res))+"\n"
            if raw_input("\n是否復(fù)制文件?(y/n)")!='n':
                copyFiles(list_res,tdir)
        else:
            print "沒(méi)有不相同的文件!"
    else:
        #如果導(dǎo)出的文件不存在,則導(dǎo)出文件
        print "正在讀取文件列表……"
        fileList=listDir (fileList,path)
        writeListToFile(fileList,txtFile)
        print "已保存到文件:"+txtFile
    raw_input("\n按 回車鍵 退出\n")

3. 配置文件名:config.ini如下:
復(fù)制代碼 代碼如下:
#配置文件名:config.ini
[main]
sourceDir=wwwroot
txtFile=1.txt
targetDir=cp

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 詳解python使用turtle庫(kù)來(lái)畫(huà)一朵花

    詳解python使用turtle庫(kù)來(lái)畫(huà)一朵花

    這篇文章主要介紹了python使用turtle庫(kù)來(lái)畫(huà)一朵花,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 深入淺析Python傳值與傳址

    深入淺析Python傳值與傳址

    這篇文章主要介紹了Python傳值與傳址的相關(guān)知識(shí),包括傳值與傳址的區(qū)別介紹,需要的朋友可以參考下
    2018-07-07
  • python中解析命令行參數(shù)的示例詳解

    python中解析命令行參數(shù)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了python中命令行參數(shù)的解析,并做一個(gè)命令行程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2024-11-11
  • django多對(duì)多表的創(chuàng)建,級(jí)聯(lián)刪除及手動(dòng)創(chuàng)建第三張表

    django多對(duì)多表的創(chuàng)建,級(jí)聯(lián)刪除及手動(dòng)創(chuàng)建第三張表

    這篇文章主要介紹了django多對(duì)多表的創(chuàng)建,級(jí)聯(lián)刪除及手動(dòng)創(chuàng)建第三張表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python設(shè)計(jì)模式之建造者模式實(shí)例詳解

    Python設(shè)計(jì)模式之建造者模式實(shí)例詳解

    這篇文章主要介紹了Python設(shè)計(jì)模式之建造者模式,簡(jiǎn)單說(shuō)明了建造者模式的概念、原理,并結(jié)合實(shí)例形式分析了Python定義及使用建造者模式相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python處理浮點(diǎn)數(shù)的實(shí)用技巧分享

    Python處理浮點(diǎn)數(shù)的實(shí)用技巧分享

    四舍五入是一種常見(jiàn)的數(shù)學(xué)操作,它用于將數(shù)字舍入到指定的精度,Python?提供了多種方法來(lái)實(shí)現(xiàn)四舍五入操作,本文將詳細(xì)介紹這些方法,希望對(duì)大家有所幫助
    2024-12-12
  • Python數(shù)據(jù)提取-lxml模塊

    Python數(shù)據(jù)提取-lxml模塊

    這篇文章主要介紹了Python數(shù)據(jù)提取-lxml模塊,lxml模塊和xpath語(yǔ)法的關(guān)系,lxml模塊的使用場(chǎng)景、lxml模塊的安裝、谷歌瀏覽器xpath?helper插件的安裝和使用等相關(guān)內(nèi)容介紹,需要的朋友可以參考一下
    2022-01-01
  • 利用Python為iOS10生成圖標(biāo)和截屏

    利用Python為iOS10生成圖標(biāo)和截屏

    這篇文章主要為大家詳細(xì)介紹了利用Python為iOS10生成圖標(biāo)和截屏的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • python集合刪除多種方法詳解

    python集合刪除多種方法詳解

    這篇文章主要介紹了python集合刪除多種方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 使用python實(shí)現(xiàn)省市三級(jí)菜單效果

    使用python實(shí)現(xiàn)省市三級(jí)菜單效果

    本文給大家分享的是使用使用python實(shí)現(xiàn)省市三級(jí)菜單效果的代碼,非常的實(shí)用,有需要的小伙伴可以參考下。
    2016-01-01

最新評(píng)論

山阴县| 莱州市| 清苑县| 湖南省| 沅江市| 华池县| 嘉荫县| 汉川市| 鄂尔多斯市| 沅陵县| 湟源县| 壶关县| 桐城市| 忻城县| 卢龙县| 张北县| 涞水县| 三原县| 昂仁县| 阿拉尔市| 资溪县| 全南县| 会同县| 黄山市| 永泰县| 齐河县| 徐州市| 常德市| 新郑市| 漳浦县| 利川市| 宁国市| 乌拉特前旗| 黄大仙区| 巴里| 西丰县| 镇原县| 柘荣县| 镶黄旗| 虞城县| 彰化县|