如何在python中基于部分文件名复制文件

如何在python中基于部分文件名复制文件,python,Python,我正试图将某些.JPG文件从我的photocard复制到另一个目录。这些文件名为IMG_7853.JPG、IMG_7854.JPG等等(它们的范围从IMG_0001.JPG到IMG_9999.JPG)。如果要复制所有大于IMG_7853的文件,python中最好的方法是什么。下面的代码可以很好地列出目录中的所有文件,但我不确定如何根据部分文件名进行比较 #! /bin/python import re import os def copyphoto(): path="/media/CA

我正试图将某些.JPG文件从我的photocard复制到另一个目录。这些文件名为IMG_7853.JPG、IMG_7854.JPG等等(它们的范围从IMG_0001.JPG到IMG_9999.JPG)。如果要复制所有大于IMG_7853的文件,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

执行全局样式匹配。

执行全局样式匹配。

我不懂python,但您应该能够比较它们。只要文件是字符串,并且都以IMG_uu开头,没有前导零,您就应该能够使用IMG_7853.JPG>filename

我不懂python,但您应该能够比较它们。只要文件是字符串,并且都以IMG_uu开头,没有前导零,您就应该能够使用IMG_7853.JPG>filename

您需要做的是提取数字部分,将其转换为整数,并进行比较。您需要做的是提取数字部分,将其转换为整数,并进行比较。对不起,我在最初的问题中没有提到某些文件名的前导零。我编辑它是为了反映这一点。@matt_k:实际上,前导零是好的。去试试托尼的建议吧。它只会因为前导零而起作用。@matt_k啊,好的,那些前导零是完美的。当我提到前导零会伤害你时,我指的是“IMG_700.JPG”比“IMG_0705.JPG”更多。在本例中,您的“IMG_0705.JPG”实际上将小于您的“IMG_700.JPG”。因为它们都有4位数字,虽然你不会遇到这个问题。对不起,我没有在我的原始问题中发布某些文件名有前导零。我编辑它是为了反映这一点。@matt_k:实际上,前导零是好的。去试试托尼的建议吧。它只会因为前导零而起作用。@matt_k啊,好的,那些前导零是完美的。当我提到前导零会伤害你时,我指的是“IMG_700.JPG”比“IMG_0705.JPG”更多。在本例中,您的“IMG_0705.JPG”实际上将小于您的“IMG_700.JPG”。因为它们都有4位数字,不过你不会遇到这个问题。谢谢。我想这会更难。谢谢。我想这会更难。
...
   if name.endswith(".JPG") and int( name.split("_")[-1].split(".")[0] ) > 7853 :
...