Como copiar o arquivo da origem para o destino apenas uma vez?

-1

Eu tenho que copiar o arquivo da minha área de trabalho para o meu diretório montado. Eu estava usando o seguinte comando para copiar o arquivo da minha área de trabalho para o diretório montado.

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

Funciona bem. Mas o problema é durante a cópia do arquivo da minha origem para o diretório montado (pasta_1), se qualquer interrupção ocorrer como a queda da rede, o sistema continuará continuamente tentando. Não poderia pular esse processo. Finalmente, quando a rede chega, os arquivos são novamente copiados para o meu diretório montado. Devido a esta tentativa contínua, da próxima vez que eu tentar mover o conteúdo, ele lança o erro "permissão negada".

Como faço para copiar o arquivo apenas uma vez, se algum problema de rede acontecer, ele não tentará copiar, em vez disso, ele emitirá o erro. Se você sabe, me deixe. É muito útil para mim.

    
por Viswa 16.11.2012 / 05:35

2 respostas

2

Muitas pessoas estão usando muito a maneira os.system . Você está executando um script Python e, em seguida, executa o Python, não o Bash!

Usar os.system reduzirá bastante a funcionalidade do seu programa. Você está experimentando uma grande desvantagem, você terá que perguntar a os.system se algo deu errado com a chamada. Apenas use métodos Python e capture a exceção.

No Python, copiar dados é feito através do módulo shutil .

    
por Timo 16.11.2012 / 12:04
1

o argumento -f é o seu problema.

da página man

-f, --force

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

você pode querer --remove-destination

    
por coteyr 16.11.2012 / 06:45