在 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 应该为我提供我在目标文件夹中搜索的子文件夹名称。
问题是因为 os.rename 仅在我的源和目标位于同一文件系统(同一服务器)上时才有效,因为我的位置安装方式不同,所以这不起作用。自从将源文件夹移动到与我的目的地相同的服务器后,这现在可以工作了。