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

Macos 在Python中将文件移动到相应的子目录,macos,python-2.7,python-3.x,directory,subdirectory,Macos,Python 2.7,Python 3.x,Directory,Subdirectory,每周在工作中,我负责手动将100-200个文件从一个文件夹移动到相应的子文件夹中。在做了几个星期之后,我对自己说:这可以做得更快 我在学校时曾使用过Python2.7和3.X,但大多使用(非常)基本的搜索引擎和文本搜索 我发现了另一个线程,其中一个人被告知使用os.rename或shutil.move。我用os.rename做了一个简单的测试: os.rename("path/to/current/file.foo", "path/to/new/desination/for/file.foo")

每周在工作中,我负责手动将100-200个文件从一个文件夹移动到相应的子文件夹中。在做了几个星期之后,我对自己说:这可以做得更快

我在学校时曾使用过Python2.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_文件、B_文件等)都与文件夹(A_文件夹、B_文件夹等)具有相同的名称,这意味着它们的顺序正确

这让我觉得一个简单的迭代就可以工作,比如(与其说是代码,不如说是算法):


显然这还不完全,但也许有人能给我指出正确的方向

这会递归地生成目录

os.makedirs(path)
因此,将路径传递给所需的目录。例如/路径/到/ 然后你会把它复制下来

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))

您还可以通过传入文件名来简化操作。

这将递归地生成目录

os.makedirs(path)
因此,将路径传递给所需的目录。例如/路径/到/ 然后你会把它复制下来

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))

您还可以通过传递文件名来简化操作。

记住不要将此脚本告诉工作中的任何人,这样您就可以有10分钟(或过去需要多长时间)来做任何您想做的事情。;)记住不要把这个脚本告诉工作中的任何人,这样你就可以有10分钟(或者不管过去需要多长时间)来做任何你想做的事情嗨,Jase,谢谢你的快速回答。我设法用一些非常相似的东西来工作:-)嗨,贾斯,谢谢你的快速回答。我设法用一种非常相似的东西来工作:-)