【问题标题】:How to move same numbers of files in different folders using Python如何使用 Python 在不同文件夹中移动相同数量的文件
【发布时间】:2025-12-18 10:55:01
【问题描述】:

我有一个包含大量 csv 文件的文件夹,我可以使用 for file in Path(folder).glob('*.csv'): 和 pandas 轻松操作它们,其中文件夹是文件夹的路径。

但现在我必须将这些文件移动到名为“folder1”、“folder2”、“folder3”的文件夹中......

我希望每个文件夹中的文件数量相同,加或减 1 个文件,因为如果文件数量不除以文件夹数量,则某些文件中会多出 1 个文件。

不能使用.startswith 来做这件事,因为我有大约 20 个文件夹,而且文件的开头不是我想要的。

在此先感谢,并为我的英语不好感到抱歉。

【问题讨论】:

  • 不清楚您的主要问题是什么?移动文件部分还是“分割”?而且我不明白您为什么要使用startswith?
  • 嘿,是部门,我说的是startswith,因为我不能使用它,因为我的文件名不兼容,以防有人给我这样的解决方案:*.com/questions/25070614/…跨度>
  • 好的,我仍然认为我遗漏了一些东西,所以让我试着改写一下:您想将文件夹中的所有 .csv 文件移动到多个文件夹中,但您没有关于哪些文件最终在哪个文件夹中?只是每个文件夹最后应该有或多或少相同数量的文件?
  • 你有 3 文件夹和 10 文件,你希望文件被平均划分,所以你在每个文件夹中有 3 文件和 1 余数,@987654328 会发生什么@剩余文件?我同意 Viper 的观点,这个问题根本不清楚。
  • 对不起,我不是英语母语,就像你说的 Umar.H 一样,除了第一个文件夹包含 4 个文件。现在清楚了吗? “但是您没有关于哪些文件最终在哪个文件夹中正确的特定规则”->是的,所以我不能使用我在链接中放置的内容。

标签: python pandas csv


【解决方案1】:

一个简单的解决方案可以是这个函数,它返回一个文件计数列表,每个文件夹一个:

def d(numfiles, numfolders):
    result = [numfiles // numfolders] * numfolders
    for i in range(numfiles % numfolders):
        result[i] += 1
    return result

print(d(10, 3))

打印:

[4, 3, 3]

【讨论】:

  • 嘿,谢谢!我用你的功能成功了,我将编辑并放置所有代码:)
最近更新 更多