将文件移动到Python中的相应子目录

时间:2016-03-01 11:55:02

标签: macos python-2.7 python-3.x directory subdirectory

每周工作,我负责将100-200个文件从一个文件夹手动移动到相应的子文件夹中。在这样做了几个星期后,我心想:这可以更快完成!

我在学校使用过Python 2.7和3.X,但主要使用(非常)基本的搜索引擎和文本搜索。

我找到另一个帖子,一个人被告知要使用os.rename或shutil.move。我用os.rename做了一个简单的测试:

os.rename("path/to/current/file.foo", "path/to/new/desination/for/file.foo")

它起作用,到目前为止一直很好。

有没有办法让python运行文件夹中的每个文件并将其移动到另一个文件夹中的相应子目录?原始目录包含所有文件,而目标目录包含所有文件文件夹。

每个文件(A_file,B_file等)都与文件夹(A_folder,B_folder等)具有相同的名称,这意味着它们的顺序正确。

这让我觉得一个简单的迭代可以工作,如(比算法更多的算法):

for file in original_dir
    move file to folder_x in tar_dir
    x += 1

显然这还不完整,但也许有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

这会以递归方式生成目录。

os.makedirs(path)

因此,您将路径传递到所需的目录。例如/ path / to / 您将跟进该副本。

def move_file(new_path_to_file, file_to_move):
  file_name = file_to_move.split(os.path.sep)[-1]
  os.makedirs(new_path_to_file)
  os.rename(file_to_move, os.path.join(new_path_to_file, file_name))

您也可以通过传入文件名来简化。