如何一次仅将文件从源复制到目标?

如何一次仅将文件从源复制到目标?

我必须将文件从我的桌面复制到我的挂载目录。我使用以下命令将文件从我的桌面复制到挂载目录。

 os.system("cp -f /home/Desktop/filename /media/folder_1"). 

它运行正常。但问题是,在将文件从我的源复制到已安装目录(folder_1)时,如果发生任何中断(例如网络中断),则系统会不断尝试。它无法跳过该过程。最后,当网络恢复时,文件会再次复制到我的已安装目录中。由于这种不断的尝试,下次我尝试移动内容时,它会抛出“权限被拒绝”错误。

我如何只复制一次文件,如果发生任何网络问题,它就不会继续尝试复制,而是会抛出错误。如果你知道,请告诉我。这对我很有用。

答案1

os.system许多人都过度使用了调用。您正在运行 Python 脚本,然后运行 ​​Python,而不是 Bash!

使用os.system将大大降低程序的功能。您遇到了一个很大的缺点,您必须询问os.system调用是否出了问题。只需使用 Python 方法并捕获异常即可。

在 Python 中,复制数据是通过shutil模块。

答案2

-f 参数是你的问题。

手册页

-f, --force

    if an existing destination file cannot be opened, remove it  and
    try again 

你可能想要--remove-destination

相关内容