【问题标题】:How to move a a certain percentage of all the files in a directory into another directory?如何将目录中所有文件的一定百分比移动到另一个目录中?
【发布时间】:2018-06-15 17:24:27
【问题描述】:

我喜欢以下数据结构:

-folder1
--subfolder1
--subfolder2
--ytz
--subfolder128
-folder2
--subfolder1
--subfolder2
--ytz
--subfolder128

在 folder1 的每个子文件夹中都有不同数量的文件。我希望将这些文件中的 10% 移动到文件夹 2 的相应子文件夹中,并让它们在文件夹 1 的相应文件夹中删除。

所有子文件夹(来自文件夹 1/文件夹 2)都命名相同。

我知道如何将文件从一个目录移动到另一个目录

for i in range(len(synonym_list)):
    dest1 = '../data/mushrooms_with_seperates_synonms/'+synonym_list[i][0]+'/'
    for j in range(len(synonym_list[i])):
        if (j != 0):
            source = '../data/mushrooms_with_seperates_synonms/'+synonym_list[i][j]+'/'
            files = os.listdir(source)
            for f in files:
                    shutil.move(source+f, dest1)
            shutil.rmtree(source)

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:
    for i in range(len(synonym_list)):
        dest1 = '../data/mushrooms_with_seperates_synonms/'+synonym_list[i][0]+'/'
        for j in range(len(synonym_list[i])):
            if (j != 0):
                source = '../data/mushrooms_with_seperates_synonms/'+synonym_list[i][j]+'/'
                files = os.listdir(source)
                for k, f in enumerate(files):
                    if not k % 10:
                        shutil.move(source+f, dest1)
    

    【讨论】:

    • 我无法理解为什么 if not k % 10 会产生 10% 的文件?
    • 因为循环的每十次迭代都是如此,因此移动了 10% 的文件。
    • 太棒了。如果我尝试进行 70% / 15% / 15% 的拆分怎么办?看起来if not k % 5 可以工作 20%...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2018-12-26
    • 2017-06-09
    • 1970-01-01
    • 2017-07-20
    • 2014-05-16
    • 1970-01-01
    相关资源
    最近更新 更多