Lo que quiero programar es,
Cuando la unidad USB está conectada al sistema, el código debe iniciarse automáticamente y copiar el contenido ( directorios, archivos, etc. ) de la unidad USB en el directorio de copia de seguridad predeterminado del sistema .
Me encontré con algunos sitios y descubrí que puedo usar la biblioteca shutil https://docs.python.org/2/library/shutil.html Operaciones de archivos de alto nivel. No he usado Shutil Library, entonces, ¿hay alguna otra forma de lograrlo?
¿Alguien ha hecho esto antes, así que por favor ayuda? Gracias
He arreglado esto y resuelto, espero que esto ayude a aquellos que son principiantes como yo.
Primero codifico para copiar archivos y directorios usando shutil para obtener más ayuda https://docs.python.org/2/library/shutil.html , conecte la unidad USB para realizar la operación
Paso 1: code_to_copy.py
import os import datetime import shutil from shutil import copytree, ignore_patterns files = os.listdir('/media/user/') destination = '/home/user/Path/Backup/back_%s'%datetime.datetime.now() try : for f in files: source = '/media/user/%s' % f copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*')) except Exception as e: print epuede ejecutar este archivo para verificar si se está copiando o no, luego
crear archivo bash
Paso 2: code_to_copy.sh
#!/bin/bash python /home/user/path/code_to_copy.pyasegúrese de tener permisos para estos archivos
paso 3: agregar a cron
$ crontab -e #add this line * * * * * /home/user/path/code_to_copy.sh > /tmp/code_to_copy.log# verifique el archivo de registro en /tmp/code_to_copy.log
después de un minuto, los datos de su dispositivo conectado se copiarán a su carpeta de respaldo y hola.
Puede usar la biblioteca pythons shutil, que es bastante simple para manejar las operaciones de copia. Si necesita automatizar el proceso, pruebe los siguientes pasos:
1: Si obtiene todos los archivos en un pendrive o cualquier otra unidad extraíble, obtenga todos los archivos y escríbalos en una lista de la siguiente manera:
import os files = os.listdir('path-to-removable-media')2: una vez que haya terminado, itere a través de la lista y use la biblioteca shutil para copiar archivos.
import shutil for f in files: shutil.copyfile('/source path/%s' % f, '/destination path/%s' %f)3: Ahora, si necesita automatizar el proceso, cree un archivo bash (archivo con extensión sh) con el siguiente contenido en su carpeta donde está presente el script de python (por ejemplo, cree el archivo test.sh y copie lo siguiente)
#!/bin/bash clear python script.py4: Luego agregue esto en su cronjob si necesita verificar o ejecutar en intervalos específicos y si los medios extraíbles no están conectados, el caso de excepción también debe manejarse.
5: Para obtener la fuente, puede utilizar el subproceso en python.
import subprocess output = subprocess.Popen("lsblk", stdout=subprocess.PIPE, shell=True) for out in output.communicate()[0].split(): if '/media/' in out: print outEsto le dará la ruta de los medios extraíbles en los dispositivos Linux.
este es un ejemplo de cómo copiar un archivo a USB (dispositivo extraíble) que puede invertir.
import os file = "cat.jpg" os.system("for /F \"tokens=1*\" %a in (\'fsutil fsinfo drives\') do (for %c in (%b) do (for /F \"tokens=3\" %d in (\'fsutil fsinfo drivetype %c\') do (if %d equ Removable (copy " + file + " %c))))")