python - SMB 网络共享上的 Python 文件复制
问题描述
我有一个关于使用 Python 通过网络复制文件的问题。我最近为我的部门创建了一个脚本,以便能够拖放文件并将它们从源位置(在网络驱动器上)复制并重命名到用户指定的位置(也主要在网络驱动器上,但有时在用户的桌面上)。我遇到的问题是随机脚本最初不会输出用户想要的所有文件。如果要制作 5 份,有时实际上只能输出 3 或 4 份。如果使用相同的选项再次删除相同的文件,则通常输出其余文件没有问题。
这让我很困惑,因为它的不一致。如果它每次都发生或者在重新删除后没有自行修复,我会将其归结为我的脚本中的逻辑错误,但这似乎不适用于这里,因为它只是一个简单的复制命令。我已经尝试了以下 3 个复制命令(分别),它们都随机产生了这个结果。
os.system('echo f | xcopy /f /y "{source}" "{target}"'.format(source=source, target=target))
shutil.copyfile(source, target)
shutil.copy2(source, target)
我只是认为这只是我们网络的一个问题,比如脚本发送复制命令的速度可能比网络处理它们的速度快,但我对网络的了解还不够,不知道这是否可能。那么这个问题可能只是我们的网络设置的问题,还是有更好的方法可以使用 Python 通过网络一次复制多个文件以确保一致性?作为记录,我们的网络是一个 SMB 网络共享,文件通常从一个 mapdrive 复制到另一个(或用户的桌面)。
这让我发疯,因为用户一直在抱怨它。任何可以提供的建议都会非常有帮助。提前致谢。
解决方案
推荐阅读
- javascript - Vuejs 组件未在 svg 标签内呈现
- python - 将列表中的随机元素添加到现有数据帧字符串
- angular - 表情符号没有出现在 git cz 的提交中
- flutter - 打开键盘时如何移动AppBar?
- c# - 打印从 5 到 N 的素数的 C# 代码
- matplotlib - 将图保存为 .eps 时,灰色 matpotlib 图面颜色变为黑色
- c# - Xamarin Android 布局将图像右对齐
- c++ - CMake:基于 Clang 的 Linux 交叉编译使用错误的目标平台
- python - 使用 matplotlib 和 geopandas 在地图上用不同的投影注释标签时遇到问题
- pytorch - Pytorch 用户对旧 GPU 的警告