タイムラインを作成したい1000個の写真のフォルダがあります。写真は60秒ごとに撮影され、10分間隔のタイムラプスを作りたいと思います。だから私はすべての2番目から9番目の写真を削除し、それをループする必要があります。たとえば、フォルダに1000個の写真がある場合、スクリプトに写真1、10、20、30などを保存したいと思います。このスクリプトの最後に、フォルダには100枚の写真しか含めるべきではありません。2番目から9番目のファイルを削除し、タイムアウトのためにループします。Python
次のコードは、私が欲しいとまったく行っていないすべての「10番目」の写真を、削除します。それは、すべての第二-9日の写真を削除するよう
import os
dir_to_clean = '/Users/myname/Desktop/TBD'
l = os.listdir(dir_to_clean)
for n in l[::10]:
os.unlink(dir_to_clean + '/' + n)
は、どのように私はこのコードを変更しますか?フォルダに偶数個のファイルがない場合(たとえば、1005個のファイルがある場合など)は、実行する必要があります。
私はimage000としてファイルを保存する必要があります - image010.jpgなど? このコードでは、10で割った値が0でないファイルを探しますか?したがって、私は数字でファイルに名前を付けるべきですか?それとも、単に画像の順番を数えるだけなので、10番目のファイルは削除されません。 – D500
@ D500 - ファイルの名前を変更する必要はありません。それらは辞書編集の順序でソートされ、10分の1を除くすべてのファイルは名前に関係なく削除されます。あなたは 'os.listdir()'呼び出しの中で 'sorted()'を取り除いて、名前に関係なくOSの索引順にソートすることができますが、これは必ずしも作成順序を保証するものではないと警告しました。 – zwer
Hrm ..コードでの奇妙な振る舞い。私はそれを実行し、それは正常に2-9番目の写真を削除したが、私にエラーを与え、残りの画像が壊れています。このエラーを修正するにはどうすればよいですか? os.remove(os.path.join(dir_to_clean、画像)) FileNotFoundErrorにおけるファイル "TimeLapseScript.py"、行8:[エラー番号2]このようなファイルまたはディレクトリ:「/ボリューム/ Seagate35TB /微速度撮影/Photos/Reduce/G0036768.JPG ' –
D500