Aprenent Python? A continuació s’explica com es pot copiar un fitxer

Aprenent Python? A continuació s’explica com es pot copiar un fitxer

Voleu millorar la vostra habilitat Python? A continuació, podeu provar de dur a terme algunes tasques al vostre ordinador amb Python. Copiar i enganxar fitxers d’un directori a un altre amb Python és una manera divertida de fer-ho.





A més de divertit, us permet llegir i escriure fitxers ràpidament sense distreure-vos del vostre codi. Si sou nou a Python, és una habilitat que potser necessiteu per agafar d’una manera o d’una altra. Per tant, anem a esbrinar com copiar fitxers amb Python mitjançant aquest missatge.





Requisits per copiar fitxers amb Python

Hi ha moltes maneres de copiar i enganxar fitxers amb Python. Per tant, el requisit per fer-ho varia i depèn del mètode que decidiu utilitzar.





Tot i que potser no necessiteu mòduls addicionals per copiar fitxers amb Python, podeu utilitzar les biblioteques integrades si voleu.

Per exemple, si voleu utilitzar el fitxer vostè , heu d’importar-lo al vostre codi. Tanmateix, una de les formes més populars de copiar fitxers amb Python és utilitzar el fitxer shutil biblioteca.



Vegem com podem utilitzar aquests diversos mètodes per copiar fitxers amb Python.

Com copiar fitxers mitjançant la biblioteca Shutil integrada de Python

El shutil module és una potent biblioteca Python integrada per llegir i escriure fitxers ràpidament a Python.





Per utilitzar-lo, només heu de proporcionar el camí complet dels fitxers origen i de destinació.

puc emetre a Xbox One

En essència, shutil adopta aquest format:





shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

Per exemple, s'utilitza el codi següent shutil.copy () per copiar un fitxer anomenat copy.txt d'una carpeta anomenada la meva carpeta en un altre anomenat destí . A continuació, canvia el nom del fitxer de destinació com a newFile.txt :

import shutil
sourceFile = 'C:/Users/some_directories/my_folder/copy.txt'
destinationFile = 'C:/Users/some_directories/destination/newFile.txt'
shutil.copy(sourceFile, destinationFile, follow_symlinks=True)

Tingueu en compte que podeu escriure el vostre codi en qualsevol editor de codi que trieu. A continuació, podeu executar-lo mitjançant la línia d'ordres.

Tanmateix, també podeu utilitzar l'entorn de desenvolupament integrat (IDLE) per defecte de Python si no esteu familiaritzat amb l'execució de Python mitjançant la línia d'ordres.

Relacionat: Ordres del símbol del sistema (CMD) que heu de conèixer

El shutil.copy El mètode no copia les metadades del fitxer font. En essència, el vostre equip veu completament el fitxer de destinació i li proporciona metadades noves.

Tot i això, per copiar les metadades juntament amb el fitxer original, utilitzeu el fitxer shutil.copy2 mètode:

import shutil
shutil.copy2(sourceFile, destinationFile, follow_symlinks=True)

El mètode anterior conserva les metadades originals del fitxer antic al fitxer de destinació. Per exemple, el fitxer de destinació conserva la data en què vau crear el fitxer origen, la seva mida i altres atributs.

El follow_symlinks argument és una declaració d'enllaç simbòlic que permet shutil segueix un camí absolut. Per tant, cal incloure-ho si els fitxers origen i de destinació es troben en diferents directoris.

Però si tots dos fitxers es troben al directori de treball actual, no cal que inclogueu un fitxer follow_symlinks . Si ho feu, Python genera una excepció de sintaxi.

com seleccionar un color específic al photoshop

Per tant, si enganxeu el fitxer font al directori de treball actual, el vostre codi hauria de ser així:

import shutil
shutil.copy2(sourceFile, destinationFile)

A més d'utilitzar els mètodes shutil anteriors, també podeu utilitzar shutil.copyfile o bé shutil.copyfileobj .

Utilitzant shutil.copyfileobj és una mica diferent ja que requereix la funció integrada obert funció. Després, heu de llegir i escriure binari incloent el fitxer 'rb' i 'wb' arguments.

Vegem com shutil.copyfileobj mètode funciona amb els mateixos directoris que hem utilitzat anteriorment:

import 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)

Tingues en compte que shutil.copyfileobj () no requereix follow_symlinks argument.

Malgrat això, shutil.copyfile () funciona de la mateixa manera .còpia i .copy2 fa. Només difereixen de manera insignificant en les seves funcions internes.

Per utilitzar el fitxer shutil.copyfile () mètode:

import shutil
sourceFilePath = 'C:/Users/some_directories/my_folder/copy.txt'
destinationFilePath = 'C:/Users/some_directories/destination/newFile.txt'
shutil.copyfile(sourceFilePath, destinationFilePath)

Com copiar fitxers amb el mòdul os

El vostè El mòdul utilitza dos mètodes integrats per copiar fitxers; os.system () i os.popen () mètodes.

El os.system () us permet imitar l'entorn de la línia d'ordres.

Tanmateix, una deficiència dels mètodes dels sistemes operatius és que només copien fitxers del directori de treball actual.

Per utilitzar el fitxer os.system () mètode a Windows:

import os
os.system('copy source.txt destination.txt)

També podeu utilitzar el dispositiu integrat xcopy Ordre del terminal de Windows:

import os
os.system('xcopy source.txt destination.txt)

Per utilitzar el fitxer os.system mètode a Linux, substituïu còpia amb cp :

import os
os.system('cp source.txt destination.txt)

Com copiar fitxers mitjançant el mètode os.popen

Per utilitzar aquest mètode, substituïu os.system () amb os.popen () .

Al Windows, utilitzeu:

import os
os.popen('copy source.txt destination.txt)

Com vam fer amb os.system () , substituir còpia amb cp per utilitzar aquest mètode a Linux:

import os
os.popen('cp source.txt destination.txt)

Com copiar fitxers amb el mòdul de subprocés de Python

A més dels mètodes anteriors, també podeu utilitzar el fitxer subprocés () biblioteca per copiar fitxers a Python:

import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)

Tanmateix, a Linux, utilitzeu:

import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)

El subprocés biblioteca també utilitza subprocess.check_out () mètode. Funciona de la mateixa manera subprocess.call () fa:

import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)

A Linux, substituïu còpia amb cp :

import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)

Tanmateix, igual que els mètodes OS, els mètodes de subprocés només funcionen amb fitxers del directori de treball actual.

Nota: També podeu copiar fitxers a una carpeta si es troba al mateix directori de treball que el fitxer origen. Tot el que heu de fer és substituir el nom del fitxer de destinació pel nom de la carpeta de destinació. Tanmateix, assegureu-vos que la carpeta de destinació i el fitxer font es trobin al directori de treball actual.

Com copiar fitxers a Python sense fer servir biblioteques

També podeu copiar fitxers a Python sense dependre de cap biblioteca. Igual que el mètode shutil, només necessiteu els camins complets dels directoris d'origen i de destinació.

la pantalla tàctil del portàtil no funciona

A continuació s’explica com aconseguir-ho:

sourcePath = 'C:/Users/source_directories/my_folder/copy.txt'
destinationPath = 'C:/Users/some_directories/destination_directories/newFile.txt'
with open(sourcePath, 'rb') as read:
with open(destinationPath, 'wb') as myfile:
myfile.write(read.read())

Per fer que el codi es pugui reutilitzar, podeu modificar-lo en una funció:

def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, 'rb') as read:
with open(destination, 'wb') as myfile:
myfile.write(read.read())
else:
print('Please enter the source and destination paths')
copyFile(sourcePath, destinationPath)

Això és. Acabeu de fer una copiadora de fitxers reutilitzable amb Python sense fer servir cap biblioteca.

Seguiu automatitzant les tasques amb Python

A més d’ajudar-vos a mantenir la concentració en el vostre codi durant la creació de projectes, copiar fitxers amb Python us permet entendre millor la gestió de fitxers amb Python. Tanmateix, jugar amb les tasques de Python és una manera de millorar la vostra habilitat en Python, especialment si sou principiant.

Per exemple, podeu canviar la data i l'hora al vostre PC amb el mòdul OS. Fins i tot podeu escriure ordres bash personalitzades amb Python si voleu.

Compartir Compartir Tweet Correu electrònic Com crear els vostres propis programes de línia d'ordres a Python amb un clic

Voleu crear els vostres propis programes de línia d’ordres Python, però us ho costa massa? Utilitzeu Click, una eina útil de Python per racionalitzar el vostre codi.

Llegiu a continuació
Temes relacionats
  • Programació
  • Python
Sobre l'autor Idisou Omisola(94 articles publicats)

Idowu és un apassionat de qualsevol tecnologia intel·ligent i productivitat. Durant el temps lliure, juga amb la codificació i canvia al tauler d’escacs quan s’avorreix, però també li agrada deixar de banda la rutina de tant en tant. La seva passió per mostrar a la gent el camí cap a la tecnologia moderna el motiva a escriure més.

Més de Idowu Omisola

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us