私は、ファイルに触れる(utime)ためのpythonツールを持っていて、別のフォルダに移動します。ただし、ファイルがあて先フォルダにすでに存在する場合は、そのファイルは上書きされます。私は、宛先フォルダに同じ名前のファイルがあるかどうか確認したい場合は、その名前に移動している名前を「n」の末尾に変更します。ここで、nは番号の開始です最後に '-1'を含むファイルが既に存在する場合は '-2'など
たとえば、ソースフォルダ内に 'foo.txt'というファイルがありますが、 foo.txt 'もコピー先フォルダに保存します。この関数は '(絶対パス)/ foo -1 .txt'を返します。python関数が繰り返されない
このような状況をチェックして修正した文字列を返す関数を作ったので、後で名前を変更して上書きすることはできません。ただし、現在、ファイルが存在する場合は何も返しません。以下は、これらのベクトルを仮定した関数コードです:
fileName - 入力ファイルパス、絶対パス。例えば/Users/foo/sourceFolder/bar.txt
インデックス - 各ファイルの先頭に「1」に設定イテレータ変数は、開かれている(外部関数へ)
def checkExists(fileName):
global index
print "checkExists(" + fileName + ")"
if exists(fileName):
splitPath = split(newFile)
splitName = splitext(splitPath[1])
newSplitName = splitName[0] + "-" + str(index)
index += 1
newName = splitPath[0] + "/" + newSplitName + splitName[1]
print "newName = " + newName
else:
print "(else) fileName = " + fileName
print "(else) fileName = " + str(type(fileName))
print ""
return fileName
checkExists(newName)
今では、内側と思われますの最後のcheckExists()が実行されていません。
私の説明ではっきりしていることを希望します。
IAmThePiGuy
P.S.潜在的な競合の問題については、ソースディレクトリ内のファイルにはアクセスできません。
はあなたのインデントを確認してください。 –