我正在尝试为我的工作完成一个清理文件组织系统的脚本。 我的脚本的最后一部分需要进入给定目录中的所有文件夹,并将每个文件夹中的所有文件移动到目录中。 例如:

import os
path = 'C:/User/Tom/Documents'
folders = os.listdir(path)
print(folders)

让我们说文件夹结构是这样的:

Documents  
[________ Folder A    
..................[_________ File 1  
..................[_________ File 2  
[________ Folder B  
..................[_________ File 3  
..................[_________ File 4  
[________ Folder C  
..................[_________ File 5  
..................[_________ File 6  
..................[_________ File 7  

我的目标是以某种方式进入“文档”下的每个文件夹,通过将所有文件移动一级来清空文件夹,而无需在文档路径中输入文件夹名称或文件名,如下所示:

Documents  
[________ Folder A    
[_________ File 1  
[_________ File 2  
[________ Folder B  
[_________ File 3  
[_________ File 4  
[________ Folder C  
[_________ File 5  
[_________ File 6  
[_________ File 7  

我是python的新手,我对如何有效地做到这一点的唯一想法是输入进入每个文件夹目录的很多代码,以及shutil.move()它们。 但是这对我的应用程序不起作用,因为脚本需要能够使用Y量的文件完成此X任务文件夹的任务,而不必输入每个文件夹路径。

我要求以有效的方式提出任何建议,我可以遍历我的“文件夹”列表,只需将文件从文件夹中移出到路径的目录中即可。
对不起,很长的帖子,我只想尽可能详细地说明我的问题,谢谢!

#1楼 票数:4 已采纳

我建议使用os.walk进行递归的自下而上遍历,并相应地移动文件。

import os
import shutil
doc_path = 'C:/User/Tom/Documents'

for root, dirs, files in os.walk(doc_path, topdown=False):
    for file in files:
        try:
            shutil.move(os.path.join(root, file), doc_path)
        except OSError:
            pass

这会将所有内容移动到顶级目录。

  ask by Bkal05 translate from so

未解决问题?本站智能推荐:

1回复

根据创建日期和文件夹名称将文件移动到文件夹Python

我是 Python 的新手,但我有一个非常有趣的案例,它可能为我们所有人提供学习的东西。 我想做以下事情。 我在桌面上创建了 3 个文件夹(源、目标和存档)。 所有 3 个文件夹都包含相同的 3 个子文件夹(A、B 和 C)。 Source 中的 3 个子文件夹时不时地被文件填满。 Destin
2回复

在特定目录中创建文本文件中指定的文件夹/子文件夹/文件

我正在尝试创建一系列文件夹,其中包含包含 python 文件的子文件夹。 这些文件夹的名称来自一个文本文件,其中包含一个包含路径的列表,如下所示: 子文件夹的数量并不总是相同的,有时可以是两个子文件夹和文件,有时只是一个文件夹和文件。 所有这些都必须在我选择的指定文件夹中创建。 这是我到目前为止所做
1回复

尝试将文件移动到临时目录时出现FileNotFoundError

我试图将子目录中的文件移动到临时文件夹中。 这是我的代码: 当我查看调试器时,我可以看到保存要移动的文件的文件变量的值。 但是没有任何移动,然后我收到错误 FileNotFoundError ,该错误引用了我要移动的文件。 当我查看我的文件资源管理器时,我可以看到文件没有移动。
1回复

将所有文件从目录树移动到另一个目录。如果名称重复,请重命名

我需要获取给定目录树中的所有文件(名为 Temp 的文件夹以及包含更多子目录和文件的子目录......)加密它们并将所有内容移动到一个唯一的目录(名为 Temp2 的文件夹,没有子目录)。 如果有重复的名称,我想将名称更改为 text.txt --> text(1).txt 并继续移动重命名的
1回复

如何有条件地将文件从一个目录移动到另一个目录?

我正在尝试使用 Shuutil 有条件地将一些文件从一个目录移动到另一个目录。 这是我的代码:files = [ '152_rand_6762_1540.npz', '14_rand_7652_-2532.npz', '1079_rand_1947_-484.npz', '152_rand_6209
3回复

Python:根据目录中的条件选择和移动文件

我有大约10分钟的视频,并且刚刚提取到每个帧中,所以我的文件夹中有超过100,000个图像,并将它们从1重命名为100,000。 现在,我要从1到100,000张图像中每30张中选择1张,然后将它们移动到另一个文件夹。 例如:1、31、61、91、121、151、181等。 到目前为止,
2回复

仅移动文件而不移动目录的问题

尝试使用random.sample将文件从logfile_directory移动到tmp_directory(以7为块)。 如果文件夹中的文件少于7个,它将仅移动其余文件。 但是,当我尝试移动少于7个文件时,由于tmp_folder试图复制到自身中而出现错误。 使用glob.glob命令
1回复

如何将一堆同名文件复制到文件夹?

我有一些具有不同扩展名的文件。 这些文件位于不同的文件夹中,并且具有相同的名称。 我想复制这些文件并同时重命名它们。 我有: ti.txt ti.xlxsx ti.pdf 我想将其重命名为: 存档_1.txt 存档_2.xlsx 存档_3.pdf PS:在这个新文件夹中,我将有几