Pythonはファイルコピー削除を実現します。
pythonで小型工具を実現しました。実は単にdebugディレクトリ下のプロファイルを指定ディレクトリにコピーし、Release下の生成ファイルを同一指定にコピーし、不要なフォルダ(.svn)をフィルタして、この指定ディレクトリに特定のファイルをいくつか追加します。
これは私の最初のpythonウィジェットです。
そのコードの実現を見てみます。
まず必要なライブラリを挿入します。
def moveFileto(sourceDir、target Dir):
shutil.co py(sourceDir,target Dir)
指定されたディレクトリにテキストファイルを書きます。
もう一つの例を見に来ます。
本人はずっとfobar 2000を音楽プレーヤーとして使っています。歌を聴く時、自分の好きな歌を特別に一つのプレイリストに追加します。
自分はiPhoneを使っていますが、同期曲はitunesを使う必要があります。itunesはfobar 2000のベストプレイリストを使っていません。
定期的にリストのmp 3ファイルを一つのディレクトリにコピーするしかないです。私はitunesを使ってこのディレクトリを同期すればいいです。
(ちなみにitunesは使いにくいです。後期は直接他の同期ツールで代用します。)
プレイリストは*.m 3 u形式のテキストで、メモ帳で開けばmp 3の絶対パスが見られます。
直接コードを貼りましょう。急いで書いていますので、参考にしてください。
これは私の最初のpythonウィジェットです。
そのコードの実現を見てみます。
まず必要なライブラリを挿入します。
import os
import os.path
import shutil
import time, datetime
そして関数の山です。一つ目は、指定されたディレクトリにあるすべてのファイルをコピーすることです。
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)
レベル1のディレクトリのすべてのファイルを削除します。
def removeFileInFirstDir(targetDir):
for file in os.listdir(targetDir):
targetFile = os.path.join(targetDir, file)
if os.path.isfile(targetFile):
os.remove(targetFile)
レベル1のディレクトリのすべてのファイルを指定ディレクトリにコピーします。
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())
指定されたファイルをディレクトリにコピー:def moveFileto(sourceDir、target Dir):
shutil.co py(sourceDir,target Dir)
指定されたディレクトリにテキストファイルを書きます。
def writeVersionInfo(targetDir):
open(targetDir, "wb").write("Revison:")
現在の日付を返します。指定されたディレクトリを作成するときに使います。
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)
そして、メイン関数の実装です。
if __name__ =="__main__":
print "Start(S) or Quilt(Q)
"
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"
やっぱり簡単だと思いますが、簡単な原因はライブラリの機能が豊富で、言語の基本的な特性の簡単さが感じられないからです。もう一つの例を見に来ます。
本人はずっとfobar 2000を音楽プレーヤーとして使っています。歌を聴く時、自分の好きな歌を特別に一つのプレイリストに追加します。
自分はiPhoneを使っていますが、同期曲はitunesを使う必要があります。itunesはfobar 2000のベストプレイリストを使っていません。
定期的にリストのmp 3ファイルを一つのディレクトリにコピーするしかないです。私はitunesを使ってこのディレクトリを同期すればいいです。
(ちなみにitunesは使いにくいです。後期は直接他の同期ツールで代用します。)
プレイリストは*.m 3 u形式のテキストで、メモ帳で開けばmp 3の絶対パスが見られます。
直接コードを貼りましょう。急いで書いていますので、参考にしてください。
#coding=gbk
import sys, shutil, os, string
mp3List = "F:\\My Documents\\mp3list\\ .m3u"
destDir = "G:\\POP\\ "
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()