如何在Python中根据部分文件名复制文件
我想把我的相机卡上的某些 .JPG 文件复制到另一个文件夹。这些文件的名字是 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
3 个回答
1
我不太懂Python,不过你应该可以直接比较它们。只要这些文件名都是字符串,并且都以IMG_开头,没有前导零,你就可以用IMG_7853.JPG > filename来进行比较。
3
fnmatch
是一个可以用来做文件名匹配的工具,它的匹配方式类似于我们在使用通配符时的方式,比如在搜索文件时用到的“*”和“?”。
2
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,但其实大多数时候,解决方案就在我们身边。我们只需要仔细查看错误信息,或者在网上搜索一下,看看其他人是怎么解决类似问题的。
有些时候,问题可能是因为我们没有正确安装某个库,或者是我们使用的版本不兼容。这种情况下,检查一下安装步骤,确保一切都按照说明来做,通常就能解决问题。
另外,记得多利用社区的力量,比如StackOverflow。在那里,你可以找到很多有经验的开发者分享的解决方案,或者直接提问,寻求帮助。
总之,遇到问题时不要慌张,保持冷静,仔细分析,通常都能找到解决办法。
...
if name.endswith(".JPG") and int( name.split("_")[-1].split(".")[0] ) > 7853 :
...