2011-08-26 60 views
0

我試圖將某些.JPG文件從我的照片卡複製到另一個目錄。這些文件被命名爲IMG_7853.JPG,IMG_7854.JPG等(它們的範圍從IMG_0001.JPG到IMG_9999.JPG)。如果我想複製大於IMG_7853的所有文件,那麼python中的最佳方法是什麼?下面的代碼適用於列出目錄中的所有文件,但我不確定如何根據部分文件名進行比較。如何在Python中複製基於部分文件名的文件

#! /bin/python 
import re 
import os 

def copyphoto(): 
    path="/media/CANON_DC/DCIM" 
    for root, dirs, files in os.walk(path): 
     for name in files: 
      if name.endswith(".JPG"): 
       print name 
+0

你需要做的是提取數字部分,將其轉換成什麼整數,並進行比較。 – Gabe

回答

2
... 
    if name.endswith(".JPG") and int(name.split("_")[-1].split(".")[0]) > 7853 : 
... 
+0

謝謝。認爲它會比這更難。 –

+3

它的Python,記得嗎? :) – ghostdog74

1

我不知道python,但你應該能夠比較它們。只要文件是字符串,開始時都沒有前導零IMG_,你就應該能夠使用IMG_7853.JPG>文件名

+0

對不起 - 我沒有發佈我的原始問題,有某些文件名前導零。我編輯它來反映這一點。 –

+0

@matt_k:實際上,前導零是*好*。繼續嘗試託尼的建議。它只會工作*,因爲*的前導零。 – Gabe

+0

@matt_k啊好吧,那些領先的零是完美的。當我提到前導零將會傷害你,我的意思是「IMG_700.JPG」與「IMG_0705.JPG」相比更多。在這種情況下,你的「IMG_0705.JPG」實際上會比你的「IMG_700.JPG」小。因爲他們都有4位數字,儘管你不會遇到這個問題。 – Tony318

相關問題