繁体   English   中英

Python shutil.move 创建无法打开的文件夹

[英]Python shutil.move creating unopenable folders

我正在尝试实现一个简单的脚本,将 .mp4 文件从一个位置移动到另一个位置。 打印语句指定源路径和目标路径。 这些文件已从源路径中删除,我认为正在移动,但无法打开这些文件夹。 如果有人能调查一下,那就太好了。 附上一张图片供参考。

def moving_folders(divers,path_from):
    
    session_list = os.listdir(path_from)
#     print(session_list)
    for session in session_list:
        name_split = session.split('_')
        if name_split[0] == 'session':
            
            session_name = '_'.join(name_split)
            date = name_split[2]
            print(date,session_name)
            temp_path = os.path.join(path_from,session_name)
            files_in_path = os.listdir(temp_path)
            print("files_in_path",files_in_path)
            for file in files_in_path:
                if '.' not in file:
                    mp4_path = os.path.join(temp_path,file)
                    mp4_files = os.listdir(mp4_path)
                    for mp4 in mp4_files:
                        if '.mp4' in mp4:
                            src_path = os.path.join(mp4_path,mp4)
                            des_path = os.path.join(path_from,file.split("_")[2])
                            date_name = os.path.join(des_path,date)
                            print(src_path, "src_path")
                            print(dest_path, "date_name")
                            print("----[![enter image description here][1]][1]--------------")
                            os.makedirs(os.path.dirname(date_name), exist_ok=True)
                            shutil.move(src_path,date_name)```


  Source Path  C:\Dive_Videos\session_97cc7372_2020-10-30_140624\1_09196fa6_BROW_305B_fail\09196fa6_BROW_305B_fail_2.mp4 src_path
   Destination Path C:\Dive_Videos\BROW\2020-10-30 date_name


  [1]: https://i.stack.imgur.com/33lOU.png

您可以使用两个内置包 os 或 shutil 之一来执行相同的操作

import os
import shutil

# Move a file by renaming it's path
os.rename(r'E:\file.mp4', r'E:\new\file.mp4')

# Move a file from the directory d1 to d2
shutil.move(r'E:\file.mp4', r'E:\new\file.mp4')

目标路径指向目标文件夹。 为了使shutl正常工作,我们需要将文件名附加到目标文件夹的绝对路径。

例如,我的目标路径从C:\\Dive_Videos\\BROW\\2020-10-30C:\\Dive_Videos\\BROW\\2020-10-30\\test.mp4 这将文件从源路径( C:\\Dive_Videos\\session_97cc7372_2020-10-30_140624\\1_09196fa6_BROW_305B_fail\\test.mp4 )移动到目标路径。 即使在较早的情况下,文件移动到目标文件夹但无法打开。

destination_path = os.path.join(des_path,date,file_name)解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM