我是Python新手,需要一些帮助。我有一大堆图片要整理。我需要每260张图像(例如:0、260、520、780等)。然后我需要将这些图像重新定位到一个新的文件夹中。以下是我目前为止的代码:
import os, os.path, sys, shutil
root = '.'
dst = "/Users/Desktop"
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/Desktop/spaceOddy/"):
#if files.endswith(".jpg"):
# print files
if files.startswith(selectPhotos[]):
print files
shutil.move ("files", root)
我的代码在两个地方都不起作用。在
我收到一个错误,需要将一个元组传递给startswith,但我不知道该怎么做。我知道元组是什么,但在语法方面我一无所知。
我不太了解舒蒂尔。快走. 如果有人知道更好的方法,我会很感激的。
谢谢
从这里开始。在
我已将
files
改为filename
。在循环中,filename
是一个字符串:目录中单个文件的名称。我使用了
enumerate
,它给了我们一个文件名和一个从0开始的计数器。在shell中尝试类似于print enumerate(['cat', 'dog', 'pig'])
的方法,看看它能做什么。现在我们有了一个计数器,我使用测试I%260==0来选择第260个文件。
如果需要获取每个260th.jpg文件,请将If语句更改为
if i%260==0 and filename.endswith('.jpg')
我不知道你想用
startswith
做什么,但是如果你想用它,你需要传递一个字符串作为参数,而不是一个元组。print selectPhotos[::260]
实际上不会更改selectPhotos。在这种情况下,你可能并不需要它,但是为了将来。。。您可以像这样向range
传递一个步长值selectPhotos = range(0,213921,260)
,或者要在创建后更改selectPhotos,请使用selectPhotos = selectPhotos[::260]
要将目录中的每个第n个图像文件移动到另一个目录:
相关问题 更多 >
编程相关推荐