2
我正在運行以下代碼(最終)從一系列jpeg中創建視頻,jpeg處於如下文件結構中:/year/month/day/hour/minute.jpg ,我有一個小型的python腳本來將每個文件從一整天(按時間順序)移動到0000.jpg,0001.jpg等格式的另一個文件中。這很奇妙,但for循環之後沒有任何執行(for例如,「HELLO」不會打印出來。這裏有什麼問題?for循環後沒有執行
#!/usr/bin/env python
import os, time, shutil
print("Content-type: text/plain\n")
os.chdir("../")
def comp(x, y):
return int(x) - int(y)
def comp2(x, y):
return int(x[:-4]) - int(y[:-4])
cwd=os.getcwd()
srcdir=cwd + "/cams/droid/archive/images/" + time.strftime("%Y/%m/%d")
hours=os.listdir(srcdir)
hours=sorted(hours, cmp=comp)
destdir=cwd + "/cgi-bin/images"
index=0
for folder in hours:
minutes=os.listdir(srcdir + "/" + folder)
minutes.remove("anim.gif")
minutes=sorted(minutes, cmp=comp2)
for files in minutes:
cpS='%s/%s/%s'%(srcdir, folder, files)
cpD='%s/%04d.jpg'%(destdir, index)
shutil.copyfile(cpS, cpD)
index+=1
print("HELLO")
一世 不要用Python編程,但是在調試循環時,很高興看到發生了什麼。如果可以,請在'index + = 1'之後的內部循環內輸出一些數據到文件(或屏幕?)。如果我是你,我會輸出dpS和cpD。看看他們是否顯示你的期望,並結束你的期望。 – BrettFromLA
你確定循環沒有掛在它的一個任務上嗎?您可以嘗試的一種粗略的調試類型是添加在內部for-loop中打印兩個值「文件夾」和「文件」的語句,然後在內部for-loop結尾處添加一些語句以確保它通過所有內容。 – JonathanV
另一個想法 - 如果'shutil.copyfile(cpS,cpD)'找不到文件,它會拋出錯誤嗎?或者只是停止?如果它剛剛停止,循環中的最後一個文件可能會丟失,但在您看來,程序剛剛停止而沒有打印(「HELLO」)。 – BrettFromLA