Vil du forbedre din Python-færdighed? Derefter kan du prøve at udføre nogle opgaver på din computer med Python. Kopiering og indsættelse af filer fra en mappe til en anden med Python er en sjov måde at gøre dette på.

Ud over at være sjov, giver det dig også mulighed for at læse og skrive filer hurtigt uden at blive distraheret fra din kode. Hvis du er ny hos Python, er det en færdighed, som du muligvis stadig har brug for at hente på en eller anden måde. Så lad os finde ud af, hvordan du kopierer filer med Python gennem dette indlæg.

Krav til kopiering af filer med Python

Der er mange måder at kopiere og indsætte filer med Python. Så kravet til at gøre det varierer og afhænger af den metode, du beslutter at bruge.

Selvom du muligvis ikke har brug for ekstra moduler til at kopiere filer med Python, kan du stadig bruge indbyggede biblioteker, hvis du vil.

For eksempel, hvis du vil bruge os metode, skal du importere den til din kode. En af de populære måder at kopiere filer med Python bruger dog shutil bibliotek.

instagram viewer

Lad os se, hvordan vi kan bruge disse forskellige metoder til at kopiere filer med Python.

Sådan kopieres filer ved hjælp af Pythons indbyggede Shutil-bibliotek

Det shutil modul er et indbygget og kraftfuldt Python-bibliotek til hurtig læsning og skrivning af filer i Python.

For at bruge det behøver du kun at levere den fulde sti til kilde- og destinationsfilerne.

I det væsentlige shutil tager dette format:

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

For eksempel bruger nedenstående kode shutil.copy () for at kopiere en fil med navnet copy.txt fra en mappe, der hedder min_mappe ind i en anden, der hedder bestemmelsessted. Det omdøber derefter destinationsfilen til newFile.txt:

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

Bemærk, at du kan skrive din kode enhver kodeditor efter eget valg. Du kan derefter køre det ved hjælp af kommandolinjen.

Du kan dog også bruge standard Python Integrated Development Environment (IDLE), hvis du ikke er fortrolig med at køre Python via kommandolinjen.

Relaterede: Kommandoprompt (CMD) kommandoer, du skal kende

Det shutil.copy metoden kopierer ikke kildefilens metadata. I det væsentlige ser din maskine destinationsfilen som en helt ny og giver den nye metadata.

For at kopiere metadataene sammen med den originale fil skal du dog bruge shutil.copy2 metode:

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

Metoden ovenfor bevarer de originale metadata for den gamle fil i destinationsfilen. For eksempel bevarer destinationsfilen den dato, hvor du oprettede kildefilen, dens størrelse og andre attributter.

Det følg_symlinks argument er en symbolsk linkerklæring, der lader shutil følg en absolut sti. Derfor skal du medtage det, hvis kilde- og destinationsfilerne er i forskellige kataloger.

Men hvis begge filer er i din nuværende arbejdsmappe, behøver du ikke medtage en følg_symlinks. Hvis du gør det, hæver Python en syntaksundtagelse.

Så hvis du indsætter kildefilen i din nuværende arbejdsmappe, skal din kode se sådan ud:

importere shutil
shutil.copy2 (sourceFile, destinationFile)

Ud over at bruge shutil-metoderne ovenfor kan du også bruge shutil.copyfile eller shutil.copyfileobj.

Ved brug af shutil.copyfileobj er lidt anderledes, da det kræver den indbyggede åben fungere. Derefter skal du læse og skrive binært ved at inkludere "rb" og "wb" argumenter.

Lad os se, hvordan shutil.copyfileobj metoden fungerer ved hjælp af de samme mapper, som vi tidligere har brugt:

importere shutil
sourceFilePath = åben ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = åben ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)

Noter det shutil.copyfileobj () kræver ikke følg_symlinks argument.

Imidlertid, shutil.copyfile () fungerer stort set på samme måde .kopi og .kopi2 gør. De adskiller sig kun ubetydeligt i deres interne funktioner.

At bruge shutil.copyfile () metode:

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

Sådan kopieres filer med os-modulet

Det os modulet bruger to indbyggede metoder til at kopiere filer; os.system () og os.popen () metoder.

Det os.system () metode giver dig mulighed for at efterligne kommandolinjemiljøet.

Imidlertid er en mangel på OS-metoder, at de kun kopierer filer i din nuværende arbejdsmappe.

At bruge os.system () metode på Windows:

importer os
os.system ('kopier source.txt destination.txt)

Du kan også bruge den indbyggede kopi Windows-terminalkommando:

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

At bruge os.system metode på Linux, udskift kopi med cp:

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

Sådan kopieres filer ved hjælp af os.popen-metoden

For at bruge denne metode skal du udskifte den os.system () med os.popen ().

På Windows skal du bruge:

importer os
os.popen ('kopier kilde.txt destination.txt)

Som vi gjorde med os.system (), udskift kopi med cp at bruge denne metode på Linux:

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

Sådan kopieres filer med Pythons underprocessormodul

Ud over ovenstående metoder kan du også bruge underproces () bibliotek til kopiering af filer i Python:

importer underproces som sp
sp.call ("copy sourceFile destinationFile", shell = True)

På Linux skal du dog bruge:

importer underproces som sp
sp.call ("cp sourceFile destinationFile", shell = True)

Det underproces biblioteket bruger også subprocess.check_out () metode. Det fungerer på samme måde underproces.call () gør:

importer underproces som sp
sp.check_out ("copy sourceFile destinationFile", shell = True)

Udskift på Linux kopi med cp:

importer underproces som sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

Men ligesom os-metoderne fungerer underprocessemetoder kun med filer i din nuværende arbejdsmappe.

Bemærk: Du kan også kopiere filer til en mappe, hvis den er i samme arbejdsmappe som kildefilen. Alt du skal gøre er at erstatte destinationsfilnavnet med navnet på destinationsmappen. Sørg dog for, at destinationsmappen og kildefilen er i dit nuværende arbejdsmappe.

Sådan kopieres filer i Python uden brug af biblioteker

Du kan også kopiere filer i Python uden at være afhængig af noget bibliotek. Ligesom shutil-metoden har du kun brug for de fulde stier i kilde- og destinationsmapperne.

Sådan opnår du dette:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
med åben (sourcePath, "rb") som læst:
med open (destinationPath, "wb") som minfil:
myfile.write (read.read ())

Til gøre koden genanvendelig, kan du ændre det til en funktion:

def copyFile (kilde = Ingen, destination = Ingen):
hvis ikke (kilde og destination) == Ingen:
med åben (kilde, "rb") som læst:
med åben (destination, "wb") som min fil:
myfile.write (read.read ())
andet:
udskriv ("Indtast kilde- og destinationsstier")
copyFile (sourcePath, destinationPath)

Det er det. Du har lige lavet en genbrugelig filkopimaskine med Python uden at bruge noget bibliotek.

Fortsæt med at automatisere opgaver med Python

Ud over at hjælpe dig med at holde fokus på din kode, mens du bygger projekter, kan du ved at kopiere filer med Python bedre forstå filhåndtering med Python. At lege med Python-opgaver er dog en måde at forbedre din Python-færdighed på, især hvis du er nybegynder.

For eksempel kan du ændre dato og klokkeslæt på din pc med os-modulet. Du kan endda skrive tilpassede bash-kommandoer med Python, hvis du vil.

E-mail
Sådan oprettes dine egne kommandolinjeprogrammer i Python med klik

Vil du lave dine egne Python-kommandolinjeprogrammer, men synes det er for svært? Brug Click, et nyttigt Python-værktøj til at strømline din kode.

Relaterede emner
  • Programmering
  • Python
Om forfatteren
Idowu Omisola (56 artikler offentliggjort)

Idowu brænder for alt smart tech og produktivitet. På fritiden leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde væk fra rutinen en gang imellem. Hans lidenskab for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.

Mere fra Idowu Omisola

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.