使用pathlib和shutil.move不将文件移动到确实存在的子文件夹中

问题描述 投票:0回答:1

在 MacOS 上,我循环遍历 pdf 的源文件夹,并检查目标文件夹是否存在与该文件同名的现有子文件夹。当我运行程序时遇到问题,即使我知道子文件夹存在,它也会直接转到我的 else 语句。我已经在 Windows 上测试过了,它工作正常,但由于某种原因我无法让它在 mac 上成功运行。我唯一能想到的是因为 .DS_Store 隐藏文件类型挂起了这个问题。这是我现有的代码

import shutil
import os
from pathlib import Path

source = '/Users/miram/Library/CloudStorage/OneDrive-Company/Docs/Test_SRCDirectory'
dest = '/MAIN/Building-D1D-RFS2'


fileword_target = "CRATE"

#File Rename
for file in Path(source).iterdir():
    name = file.stem.split(fileword_target)[0].rstrip()
    subdir = Path(dest, name)
    print(f"Checking subdir: {subdir}")

#Move file into folder that matches name variable
    if subdir.exists():
        destination = Path(subdir, file.name)
        shutil.move(file, destination)
        print(f"{name} have been moved.")
    else:
        print(f"Folder not found for {name}")

我要移动的文件如下所示:

文件名 L1 CRATE D1D

.stem/.strip 应该为我提供我在目标文件夹中搜索的子文件夹名称。

python macos shutil pathlib
1个回答
0
投票

问题是因为 os.rename 仅在我的源和目标位于同一文件系统(同一服务器)上时才有效,因为我的位置安装方式不同,所以这不起作用。自从将源文件夹移动到与我的目的地相同的服务器后,这现在可以工作了。

© www.soinside.com 2019 - 2024. All rights reserved.