Как скопировать файл из источника в место назначения только один раз за раз?

Я должен скопировать файл со своего рабочего стола в мой смонтированный каталог. Я использовал следующую команду, чтобы скопировать файл со своего рабочего стола в смонтированный каталог.

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

Работает нормально. Но проблема заключается в том, что при копировании файла из моего источника в смонтированный каталог (folder_1), если происходит какое-либо прерывание, например, из-за сбоя сети, система постоянно продолжает попытки. Он не мог пропустить этот процесс. Наконец, когда приходит сеть, файлы снова копируются в мой смонтированный каталог. Из-за этой постоянной попытки в следующий раз я пытаюсь переместить содержимое, которое выдает ошибку «Отказано в доступе».

Как мне скопировать файл только один раз, если возникнут какие-либо проблемы с сетью, он не будет пытаться копировать, вместо этого он выдаст ошибку. Если знаешь, дай мне. Это очень полезно для меня.

-1
задан 16 November 2012 в 08:35

2 ответа

Многие люди слишком часто используют os.system колл. Вы запускаете скрипт Python, затем запускаете Python, а не Bash!

Использование os.system значительно снизит функциональность вашей программы. Вы испытываете один серьезный недостаток, вам придется спросить os.system, если что-то пошло не так с вызовом. Просто используйте методы Python и запишите исключение.

В Python копирование данных осуществляется с помощью модуля shutil .

0
ответ дан 16 November 2012 в 08:35

Аргумент -f - ваша проблема.

из справочной страницы

-f, --force

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

вы можете захотеть --remove-destination

0
ответ дан 16 November 2012 в 08:35

Другие вопросы по тегам:

Похожие вопросы: