Python實(shí)現(xiàn)文件復(fù)制刪除
用python實(shí)現(xiàn)了一個小型的工具。其實(shí)只是簡單地把debug 目錄下的配置文件復(fù)制到指定目錄,把Release下的生成文件復(fù)制到同一指定,過濾掉不需要的文件夾(.svn),然后再往這個指定目錄添加幾個特定的文件。
這個是我的第一個python小程序。
下面就來看其代碼的實(shí)現(xiàn)。
首先插入必要的庫:
import os import os.path import shutil import time, datetime
然后就是一大堆功能函數(shù)。第一個就是把某一目錄下的所有文件復(fù)制到指定目錄中:
def copyFiles(sourceDir, targetDir):
if sourceDir.find(".svn") >0:
return
for file in os.listdir(sourceDir):
sourceFile = os.path.join(sourceDir, file)
targetFile = os.path.join(targetDir, file)
if os.path.isfile(sourceFile):
if not os.path.exists(targetDir):
os.makedirs(targetDir)
if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))):
open(targetFile, "wb").write(open(sourceFile, "rb").read())
if os.path.isdir(sourceFile):
First_Directory = False
copyFiles(sourceFile, targetFile)
刪除一級目錄下的所有文件:
def removeFileInFirstDir(targetDir): for file in os.listdir(targetDir): targetFile = os.path.join(targetDir, file) if os.path.isfile(targetFile): os.remove(targetFile)
復(fù)制一級目錄下的所有文件到指定目錄:
def coverFiles(sourceDir, targetDir): for file in os.listdir(sourceDir): sourceFile = os.path.join(sourceDir, file) targetFile = os.path.join(targetDir, file) #cover the files if os.path.isfile(sourceFile): open(targetFile, "wb").write(open(sourceFile, "rb").read())
復(fù)制指定文件到目錄:
def moveFileto(sourceDir, targetDir):
shutil.copy(sourceDir, targetDir)
往指定目錄寫文本文件:
def writeVersionInfo(targetDir):
open(targetDir, "wb").write("Revison:")
返回當(dāng)前的日期,以便在創(chuàng)建指定目錄的時候用:
def getCurTime(): nowTime = time.localtime() year = str(nowTime.tm_year) month = str(nowTime.tm_mon) if len(month) <2: month ='0'+ month day = str(nowTime.tm_yday) if len(day) <2: day ='0'+ day return (year +'-'+ month +'-'+ day)
然后就是主函數(shù)的實(shí)現(xiàn)了:
if __name__ =="__main__": print "Start(S) or Quilt(Q) \n" flag = True while (flag): answer = raw_input() if'Q'== answer: flag = False elif 'S'== answer : formatTime = getCurTime() targetFoldername ="Build "+ formatTime +"-01" Target_File_Path += targetFoldername copyFiles(Debug_File_Path, Target_File_Path) removeFileInFirstDir(Target_File_Path) coverFiles(Release_File_Path, Target_File_Path) moveFileto(Firebird_File_Path, Target_File_Path) moveFileto(AssistantGui_File_Path, Target_File_Path) writeVersionInfo(Target_File_Path+"\\ReadMe.txt") print "all sucess" else: print "not the correct command"
感覺是果然簡單, 不過簡單的原因是因?yàn)閹旌瘮?shù)豐富,語言基本特性的簡單真沒感覺出來。
我們再來看一個實(shí)例
本人一直用foobar2000作為音樂播放器,聽歌時候把自己喜歡的歌都會特別添加到一個播放列表。
自己用iphone,同步歌曲的時候需要用到itunes,而itunes卻沒有我用foobar2000的精選播放列表呢~
本人只好定期把播放列表的mp3文件拷貝到一個目錄,我用itunes只需同步這個目錄即可
(順便吐槽下itunes不好使,在后期我都直接用其他同步工具代替之)
播放列表是*.m3u格式的文本,用記事本打開可以看到mp3的絕對路徑。
直接貼代碼吧,寫得比較倉促,各位將就參考下即可:
#coding=gbk
import sys, shutil, os, string
mp3List = "F:\\My Documents\\mp3list\\默認(rèn)精選.m3u"
destDir = "G:\\POP\\默認(rèn)精選"
def cpFile(srcPath):
fileName = os.path.basename(srcPath)
destPath = destDir + os.path.sep + fileName
if os.path.exists(srcPath) and not os.path.exists(destPath):
print 'cp %s %s' % (srcPath,destPath)
shutil.copy(srcPath,destPath)
if __name__ == '__main__':
f = file(mp3List, 'r')
lists = f.readlines()
for i in lists:
cpFile(string.strip(i))
f.close()
- python通過shutil實(shí)現(xiàn)快速文件復(fù)制的方法
- python調(diào)用cmd復(fù)制文件代碼分享
- python批量復(fù)制圖片到另一個文件夾
- python實(shí)現(xiàn)文件分組復(fù)制到不同目錄的例子
- Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例
- python使用paramiko實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法
- python3利用tcp實(shí)現(xiàn)文件夾遠(yuǎn)程傳輸
- python使用Paramiko模塊實(shí)現(xiàn)遠(yuǎn)程文件拷貝
- Python通過paramiko遠(yuǎn)程下載Linux服務(wù)器上的文件實(shí)例
- python定時復(fù)制遠(yuǎn)程文件夾中所有文件
相關(guān)文章
使用python實(shí)現(xiàn)滑動驗(yàn)證碼功能
這篇文章主要介紹了使用python實(shí)現(xiàn)滑動驗(yàn)證碼功能,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-08-08
如何在Django項(xiàng)目中引入靜態(tài)文件
這篇文章主要介紹了如何在Django項(xiàng)目中引入靜態(tài)文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
python3 字符串知識點(diǎn)學(xué)習(xí)筆記
字符串是 Python 中最常用的數(shù)據(jù)類型。我們可以使用引號('或")來創(chuàng)建字符串2020-02-02
python數(shù)據(jù)庫如何連接SQLite詳解
這篇文章主要介紹了Python實(shí)現(xiàn)連接SQLite數(shù)據(jù)庫的方法,在Python數(shù)據(jù)庫編程中有著廣泛的應(yīng)用,需要的朋友可以參考下,希望能給你帶來幫助2021-08-08
Python中最強(qiáng)大的重試庫Tenacity使用探索
這篇文章主要為大家介紹了Python中最強(qiáng)大的重試庫Tenacity使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列詳解
numpy.linspace是用于創(chuàng)建一個一維數(shù)組,并且是等差數(shù)列構(gòu)成的一維數(shù)組,下面這篇文章主要給大家介紹了關(guān)于python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-10-10

