0

可能重复:
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 ///////////////////"


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)
4

1 回答 1

1

下面的代码实现了您正在寻找的内容。对所做更改的一些评论:

  • 使用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))
于 2012-11-11T04:21:52.990 回答