可能重复:
PYTHON: Searching for a file name from an array and then relocating the file
我是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)
答案 0 :(得分:1)
以下代码实现了您的目标。关于所做更改的一些评论:
os.rename
代替shutil.move
,shutil.move
更多地用于递归移动目录而不是单个文件。 glob
是一个很棒的模块,可以让您的代码更短,更易于阅读,而不是os.listdir
%
就是完美的。在你的情况下每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))