Macos 在Python中将文件移动到相应的子目录
每周在工作中,我负责手动将100-200个文件从一个文件夹移动到相应的子文件夹中。在做了几个星期之后,我对自己说:这可以做得更快 我在学校时曾使用过Python2.7和3.X,但大多使用(非常)基本的搜索引擎和文本搜索 我发现了另一个线程,其中一个人被告知使用os.rename或shutil.move。我用os.rename做了一个简单的测试: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")
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,谢谢你的快速回答。我设法用一些非常相似的东西来工作:-)嗨,贾斯,谢谢你的快速回答。我设法用一种非常相似的东西来工作:-)