Python中的文件排序和移动
可能重复:Python中的文件排序和移动,python,Python,可能重复: 我是Python新手,需要一些帮助。我收集了大量的图片,我正在整理。我需要每260个图像(例如:0、260、520、780等)。然后我需要将这些图像重新定位到一个新文件夹。以下是我目前的代码: import os, os.path, sys, shutil root = '.' dst = "/Users/xx/Desktop/newFolder" print "/////// F I N D__A L L__F I L E S __W I T H I N __R A N G E
我是Python新手,需要一些帮助。我收集了大量的图片,我正在整理。我需要每260个图像(例如:0、260、520、780等)。然后我需要将这些图像重新定位到一个新文件夹。以下是我目前的代码:
import os, os.path, sys, shutil
root = '.'
dst = "/Users/xx/Desktop/newFolder"
print "/////// F I N D__A L L__F I L E S __W I T H I N __R A N G E ///////////////////"
selectPhotos = range(260, 213921)
print selectPhotos[::260]
print "/////// L I S T__O F __A L L __J P E G S ///////////////////"
for files in os.listdir("/Users/xx/Desktop/spaceOddy/"):
#if files.endswith(".jpg"):
# print files
if files.startswith(('00260', '00520', '00780')):
print files
#shutil.copyfile(files, "/Users/xx/Desktop")
shutil.move ("files", dst)
下面的代码实现了您要查找的内容。关于所做更改的几点意见:
- 使用
而不是os.rename
,shutil.move
更适合递归移动目录而不是单个文件李>shutil.move
是一个很好的模块,它可以使您的代码更短,更易于阅读,而不是glob
os.listdir
- 当您想对每个x项执行某些操作时,模数运算符
非常完美。在您的情况下,每260项%
src = '/Users/xx/Desktop/spaceOddy/'
dst = "/Users/xx/Desktop/newFolder/"
EVERY = 260
for i, file in enumerate(glob.glob(src + '*.png')):
if i % EVERY == EVERY - 1:
print 'moving', file
os.rename(file, dst + os.path.basename(file))