¿Quieres mejorar tu habilidad con Python? Luego, puede intentar realizar algunas tareas en su computadora con Python. Copiar y pegar archivos de un directorio a otro con Python es una forma divertida de hacer esto.
Además de ser divertido, te permite leer y escribir archivos rápidamente sin distraerte de tu código. Si eres nuevo en Python, es una habilidad que quizás necesites aprender de una forma u otra. Entonces, descubramos cómo copiar archivos con Python a través de esta publicación.
Requisitos para copiar archivos con Python
Hay muchas formas de copiar y pegar archivos con Python. Por lo tanto, el requisito para hacerlo varía y depende del método que decida utilizar.
Si bien es posible que no necesite módulos adicionales para copiar archivos con Python, aún puede usar bibliotecas integradas si lo desea.
Por ejemplo, si desea utilizar el os método, debe importarlo a su código. Sin embargo, una de las formas populares de copiar archivos con Python es usar la shutil Biblioteca.
Veamos cómo podemos usar estos diversos métodos para copiar archivos con Python.
Cómo copiar archivos usando la biblioteca Shutil incorporada de Python
los shutil El módulo es una potente biblioteca de Python incorporada para leer y escribir archivos rápidamente en Python.
Para usarlo, solo necesita proporcionar la ruta completa de los archivos de origen y destino.
En esencia, shutil toma este formato:
shutil.copy ([ruta del directorio de origen], [ruta del directorio de destino], follow_symlinks = True)
Por ejemplo, el siguiente código usa shutil.copy () para copiar un archivo llamado copy.txt de una carpeta llamada mi carpeta en otro llamado destino. Luego cambia el nombre del archivo de destino como newFile.txt:
importar shutil
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (archivo de origen, archivo de destino, follow_symlinks = True)
Tenga en cuenta que puede escribir su código en cualquier editor de código de su elección. Luego puede ejecutarlo usando la línea de comando.
Sin embargo, también puede usar el entorno de desarrollo integrado de Python (IDLE) predeterminado si no está familiarizado con la ejecución de Python a través de la línea de comandos.
Relacionado: Comandos del símbolo del sistema (CMD) que debe conocer
los shutil.copy El método no copia los metadatos del archivo fuente. En esencia, su máquina ve el archivo de destino como uno completamente nuevo y le proporciona nuevos metadatos.
Sin embargo, para copiar los metadatos junto con el archivo original, utilice la shutil.copy2 método:
importar shutil
shutil.copy2 (archivo de origen, archivo de destino, follow_symlinks = True)
El método anterior conserva los metadatos originales del archivo antiguo en el archivo de destino. Por ejemplo, el archivo de destino conserva la fecha en que creó el archivo de origen, su tamaño y otros atributos.
los follow_symlinks argumento es una declaración de enlace simbólico que permite shutil sigue un camino absoluto. Por lo tanto, debe incluirlo si los archivos de origen y destino se encuentran en directorios diferentes.
Pero si ambos archivos están en su directorio de trabajo actual, no necesita incluir un follow_symlinks. Si lo hace, Python genera una excepción de sintaxis.
Entonces, si está pegando el archivo fuente en su directorio de trabajo actual, su código debería verse así:
importar shutil
shutil.copy2 (archivo de origen, archivo de destino)
Además de usar los métodos shutil anteriores, también puede usar shutil.copyfile o shutil.copyfileobj.
Usando shutil.copyfileobj es un poco diferente, ya que requiere la función incorporada abierto función. Luego, necesita leer y escribir binario incluyendo el "rb" y "wb" argumentos.
Veamos como el shutil.copyfileobj El método funciona usando los mismos directorios que usamos anteriormente:
importar shutil
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Tenga en cuenta que shutil.copyfileobj () no requiere el follow_symlinks argumento.
Sin embargo, shutil.copyfile () funciona bastante de la misma manera .Copiar y .copy2 hace. Solo difieren insignificantemente en sus funciones internas.
Usar el shutil.copyfile () método:
importar shutil
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Cómo copiar archivos con el módulo del sistema operativo
los os el módulo utiliza dos métodos integrados para copiar archivos; os.system () y os.popen () métodos.
los os.system () El método le permite imitar el entorno de la línea de comandos.
Sin embargo, una deficiencia de los métodos del sistema operativo es que solo copian archivos dentro de su directorio de trabajo actual.
Usar el os.system () método en Windows:
importar sistema operativo
os.system ('copiar fuente.txt destino.txt)
También puede utilizar el integrado xcopiar Comando de terminal de Windows:
importar sistema operativo
os.system ('xcopy source.txt destination.txt)
Usar el os.system método en Linux, reemplace Copiar con cp:
importar sistema operativo
os.system ('cp source.txt destination.txt)
Cómo copiar archivos usando el método os.popen
Para utilizar este método, reemplace os.system () con os.popen ().
En Windows, use:
importar sistema operativo
os.popen ('copiar origen.txt destino.txt)
Como hicimos con os.system (), reemplazar Copiar con cp para utilizar este método en Linux:
importar sistema operativo
os.popen ('cp fuente.txt destino.txt)
Cómo copiar archivos con el módulo de subproceso de Python
Además de los métodos anteriores, también puede utilizar el subproceso () biblioteca para copiar archivos en Python:
importar subproceso como sp
sp.call ("copiar sourceFile destinationFile", shell = True)
Sin embargo, en Linux, use:
importar subproceso como sp
sp.call ("cp sourceFile destinationFile", shell = True)
los subproceso la biblioteca también usa subprocess.check_out () método. Funciona de la misma manera subprocess.call () hace:
importar subproceso como sp
sp.check_out ("copiar sourceFile destinationFile", shell = True)
En Linux, reemplace Copiar con cp:
importar subproceso como sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Sin embargo, al igual que los métodos del sistema operativo, los métodos de subproceso solo funcionan con archivos en su directorio de trabajo actual.
Nota: También puede copiar archivos en una carpeta si está en el mismo directorio de trabajo que el archivo de origen. Todo lo que necesita hacer es reemplazar el nombre del archivo de destino con el nombre de la carpeta de destino. Sin embargo, asegúrese de que la carpeta de destino y el archivo de origen estén en su directorio de trabajo actual.
Cómo copiar archivos en Python sin usar bibliotecas
También puede copiar archivos en Python sin depender de ninguna biblioteca. Al igual que el método shutil, solo necesita las rutas completas de los directorios de origen y destino.
He aquí cómo lograr esto:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
con open (sourcePath, "rb") como se lee:
con open (destinationPath, "wb") como myfile:
myfile.write (read.read ())
A hacer que el código sea reutilizable, puede modificarlo en una función:
def copyFile (origen = Ninguno, destino = Ninguno):
si no (origen y destino) == Ninguno:
con open (fuente, "rb") como se lee:
con open (destino, "wb") como miarchivo:
myfile.write (read.read ())
demás:
imprimir ("Introduzca las rutas de origen y destino")
copyFile (ruta de origen, ruta de destino)
Eso es. Acaba de hacer una copiadora de archivos reutilizable con Python sin usar ninguna biblioteca.
Siga automatizando tareas con Python
Además de ayudarlo a mantenerse enfocado en su código mientras crea proyectos, copiar archivos con Python le permite comprender mejor la administración de archivos con Python. Sin embargo, jugar con las tareas de Python es una forma de mejorar tu habilidad de Python, especialmente si eres un principiante.
Por ejemplo, puede cambiar la fecha y la hora en su PC con el módulo del sistema operativo. Incluso puede escribir comandos de bash personalizados con Python si lo desea.
¿Quiere crear sus propios programas de línea de comandos de Python pero le resulta demasiado difícil? Utilice Click, una útil herramienta de Python para optimizar su código.
- Programación
- Pitón
Idowu es un apasionado de la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino en torno a la tecnología moderna lo motiva a escribir más.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Un paso más…!
Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.