2011-08-26 61 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

相关问题