2016-03-01 115 views
0

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

我已经在学校使用了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 

这显然是不完整的,但也许有人可以点我在正确的方向。

+0

记住不要告诉任何人在工作中关于这个脚本,所以你可以有10分钟(或无论过去多长时间)做任何你想做的事情。 ;) – Michael

回答

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

你也可以通过传递文件名来简化它。

+0

嗨Jase, 感谢您的快速回答。我设法使用非常相似的工作来工作:-) –

相关问题