繁体   English   中英

Python - 从文件名创建文件夹,将文件移动到创建的文件夹中

[英]Python - Create Folder From Filename, Move File into Created Folder

我正在尝试在 python 中做我自己的 Files2Folder,因为它会更自动化地满足我的需要。 我有它以便它从文件名创建一个文件夹,但是每当我尝试将文件移动到新创建的文件夹中时,都会返回一个错误。 有任何想法吗?

import os
import os.path
import shutil
from pathlib import Path
import glob

rootdir = r'T:\rcloneFolder'
keepExt = ('.mkv', '.mp4', '.avi')
searchPath = Path(rootdir)


for file in searchPath.rglob("*"):
    if file.name.endswith(keepExt):
        print(file)
        newName = (os.path.splitext(file.name)[0])
        newFolders = os.mkdir(os.path.join(searchPath,newName))
        print("Made File Directory: " + newName)
        name = newName + '.mkv'
        shutil.move(file, os.path.join(rootdir, name))
from pathlib import Path
import glob, os
import shutil

for file in glob.glob('*.webm'):
    folder_name = file.split('.')[0]
    Path(folder_name).mkdir(parents=True, exist_ok=True)
    shutil.move(file, folder_name)

我想你正在寻找的是你需要使用rootdir而不是searchPathos.path.join因为 join 需要一个纯字符串,那么新文件名将是os.path.join(rootdir, newName, newName) + ".mkv"因为您想重命名扩展名并将其移动到具有相同名称的文件夹中,所以我相信以下代码可以满足您的需求:

for file in searchPath.rglob("*"):
    if file.name.endswith(keepExt):
        print(file)
        name = (os.path.splitext(file.name)[0])
        newFolder = os.path.join(rootdir,name)
        os.mkdir(newFolder)
        print("Made File Directory: " + newFolder)
        destination = os.path.join(newFolder, name) + '.mkv'
        shutil.move(file, destination)

暂无
暂无

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

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