如何将一百个文件从文件夹复制到文件夹?

问题描述:

我有一个文件夹中的一个百万个文件,我想在另一个文件夹从他们只在百文件复制:对我来说如何将一百个文件从文件夹复制到文件夹?

import os 
import shutil 

dir_src = ("/Big_Folder") 
dir_dst = ("/Small_Folder") 

for filename in os.listdir(dir_src): 
    shutil.copy(dir_src + filename, dir_dst) 
    print(filename) 

这个脚本复制所有文件,如何只复制100000的文件吗?

+0

而到底是哪100个文件,你要复制?任何100? 100岁最老? 前100位按文件名的字母顺序?还有别的吗? –

+0

我不在乎哪一个,我只需要一百个文件来进行我的测试,例如第一个文件 – Sony

简单的切片要遍历列表:

for filename in os.listdir(dir_src)[:100]: 
    ... 

通过对列表进行索引可以让您对第n个(或本例中为i)的迭代执行操作。

import os 
import shutil 

dir_src = ("/Big_Folder") 
dir_dst = ("/Small_Folder") 

dirList = os.listdir(dir_src) 
for i in range(len(dirList)): 
    if i == 100: 
    break 
    shutil.copy(dir_src + dirList[i], dir_dst) 
    print(filename) 
+1

它可以工作,但在Python中不是很习惯:我们几乎从不使用'for in in len(something)',相反,我们使用'for i,enumerate(something)'中的项目'或者只是遍历'something'。 –

+0

@Paulo Scardine你的方式看起来更好。如果速度是第一优先级,我们不会使用python,但是我会尽可能地写更快的代码。 '因为我在范围内(len(...))'要快得多(除非我错了)。我在带有“pass”的10,000元素数组上使用iPython'%timeit'来比较迭代时间。对于给定的硬件,py3.6的3个循环时间中的最好时间是'范围(len(...))346uS'和枚举方法的1130uS。也许这是值得一个新的职位,以更好地比较两者。 – 16num