I den här handledningen kommer vi att lära oss om Shutil-modulen i Python. Vi kommer att diskutera hur vi kan utföra filoperationen på hög nivå som att skapa en ny kopieringsfil och arkivera den och kopiera innehåll från en fil till en annan fil med Python-skriptet. Låt oss ha en grundläggande introduktion av Shutil-modulen.
slumpmässig nummer c-kod
Python Shutil-modul
Python shutil-modulen ger möjlighet att utföra filoperationen på hög nivå. Den kan arbeta med filobjektet och erbjuder oss möjligheten att kopiera och ta bort filerna. Den hanterar semantiken på låg nivå som att skapa och stänga filobjekt efter att ha utfört alla operationer.
Fungerar av Shutil-modulen
Python shutil-modulen kommer med de många inbyggda metoderna. Vi kommer att utforska några viktiga metoder. För att börja arbeta med den här modulen måste vi först importera den i vår nuvarande Python-fil.
Kopiera filer
Denna modul tillhandahåller kopiera() funktion som används för att kopiera en data från en fil till en annan. Filerna måste vara i samma katalog och målfilen måste vara skrivbar. Låt oss förstå följande syntax.
Syntax-
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parameter:
I ovanstående syntax -
- Det första argumentet är källa som visar sökvägen till källfilen.
- Det andra argumentet är destination som visar sökvägen till destinationsfilen.
- Det tredje argumentet är valfritt; standardvärdet för denna parameter är sant.
- Den returnerar en sträng som visar sökvägen till den nyskapade filen.
Låt oss förstå följande exempel.
Exempel -
import os import shutil # Creating a new folder in the current directory os.mkdir('javatpoint') # It will show the empty folder print('Empty Folder:', os.listdir('javatpoint')) # testcompare.py file will be copied in the javatpoint folder shutil.copy('testcompare.py', 'javatpoint') # After coping the file folder shows the file print('File Copied Name:', os.listdir('javatpoint'))
Produktion:
Empty Folder: [] File Copied Name: ['testcompare.py']
Förklaring -
Funktionen copy() tar katalognamnet som ett argument. Här metadata inte kopieras, kommer den kopierade filen att betraktas som den nyskapade filen. Denna metod klonade också filens all-behörighet. En sak att notera är att om målfilen redan finns kommer den att ersättas med källfilen.
Låt oss se ett annat exempel.
Exempel - 2 om en destination är en katalog
import os import shutil # hello.txt file will be copied source = r'D:Python Projectjavatpointhello.txt' # In the newly created foloder destination = r'D:Python ProjectNewFile' # Storing the new path of hello.txt file dest = shutil.copy(source, destination) # Print the new path print(dest)
Produktion:
D:Python ProjectNewFilehello.txt
Som vi har nämnt kopierar funktionen copy() inte metadata. Men vi kommer att använda copy2() funktion som låter oss kopiera filen inklusive dess metadata.
Exempel - 3: Felhantering vid användning av kopieringsmetoden
# importing shutil module import shutil # It is a source path source = r'D:Python ProjectNewFolder' # It is a destination path destination = r'D:Python ProjectNewFolder' try: shutil.copy(source, destination) print('File copied successfully.') # If the given source and path are same except shutil.SameFileError: print('Source and destination represents the same file.') # If there is no permission to write except PermissionError: print('Permission denied.') # For other errors except: print('Error occurred while copying file.')
Produktion:
Source and destination represents the same file.
Copy2()-funktionen
Denna funktion liknar den kopiera() fungera. Den kan också kopiera innehållet i en fil till en annan men den enda skillnaden är att den kan bevara filens metadata. Låt oss förstå följande syntax.
Syntax:
shutil.copy2(source, destination, *, follow_symlinks = True)
Parameter:
I ovanstående syntax -
- Det första argumentet är source som visar sökvägen till källfilen.
- Det andra argumentet är destination som visar sökvägen till destinationsfilen.
- Det tredje argumentet är valfritt; standardvärdet för denna parameter är sant.
- Den returnerar en sträng som visar sökvägen till den nyskapade filen.
Låt oss förstå följande exempel.
Exempel -
import os import shutil # hello.txt file will be copied source = r'D:Python Projectjavatpointhello.txt' metadata = os.stat(source) print(metadata) # In the newly created foloder destination = r'D:Python ProjectNewFile' # Storing the new path of hello.txt file dest1 = shutil.copy2(source, destination) metadata = os.stat(dest1) print('After copying file') print(metadata) # Print the new path print(dest1)
Produktion:
os.stat_result(st_mode=33206, st_ino=562949953459285, st_dev=3029671014, st_nlink=1, st_uid=0, st_gid=0, st_size=17, st_atime=1622815671, st_mtime=1622705607, st_ctime=1622705607) After copying file os.stat_result(st_mode=33206, st_ino=562949953459287, st_dev=3029671014, st_nlink=1, st_uid=0, st_gid=0, st_size=17, st_atime=1622815748, st_mtime=1622705607, st_ctime=1622706243) D:Python ProjectNewFilehello.txt
Funktionen shutil.copyfile()
Denna metod används för att kopiera innehållet i källfilen till målfilen förväntar sig metadata. Källan och destinationen måste ha en fil och destinationsfilen måste ge skrivbehörighet. Om det redan finns en destinationsfil kommer den att ersättas av den nya filen, annars skapa en ny fil.
vad är en dubbel java
Låt oss se följande syntax.
Syntax:
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parametrar:
I ovanstående syntax -
- Det första argumentet är source som visar sökvägen till källfilen.
- Det andra argumentet är destination som visar sökvägen till destinationsfilen.
- Det tredje argumentet är valfritt; standardvärdet för denna parameter är sant.
- Den returnerar en sträng som visar sökvägen till den nyskapade filen.
Låt oss förstå följande exempel.
Exempel -
import shutil # hello.txt file will be copied source = r'D:Python Projectjavatpointhello.txt' # In the newly created foloder destination = r'D:Python ProjectNewFilehi.txt' # Storing the new path of hello.txt file dest1 = shutil.copyfile(source, destination) # Print the new path print(dest1)
Produktion:
D:Python ProjectNewFilehi.txt
Funktionen shutil.copytree()
Denna metod används för att replikera hela katalogen. Den kopierar ett helt katalogträd som är rotat vid källan till målkatalogen. Målkatalogen får inte redan finnas. Låt oss se följande syntax.
Syntax:
shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False)
Parametrar:
I ovanstående syntax:
- Den returnerar strängen som representerar sökvägen till den nyskapade katalogen.
Exempel -
# importing shutil module import shutil # It is source path src = r'D:Python Projectjavatpoint' # It is destination path dest = r'D:Python ProjectNewFolder' # Copy the content of # source to destination dest1 = shutil.copytree(src, dest) # Now we print path of newly # created file print('Destination path:', dest1)
Produktion:
när slutar q1
Destination path: D:Python ProjectNewFolder
shutil.rmtree()
Denna metod används för att ta bort hela katalogträdet. Låt oss se följande syntax.
Syntax:
shutil.rmtree(path, ignore_errors=False, onerror=None)
Parameter-
I ovanstående syntax -
Låt oss förstå följande exempel -
Exempel -
import shutil import os # location location_dir = r'D:Python ProjectNewFile' # directory directory = r'D:Python Projectjavatpoint' # path path1 = os.path.join(location_dir, directory) # removing directory shutil.rmtree(path1)
Ovanstående kod kommer att ta bort den givna katalogen.
Funktionen shutil.which()
De shutil.which() funktion används för att få sökvägen till ett körbart program som skulle köras om den givna cmd anropades. Den hittar filen i den angivna sökvägen. Låt oss se följande syntax.
Syntax:
sonu nigam
shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None)
Parametrar
I ovanstående syntax -
- Denna metod returnerar sökvägen till ett körbart program.
Låt oss förstå följande exempel.
Exempel -
# importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating)
Produktion:
C:Pythonpython.EXE
Den kommer att hitta den givna filen i datorn, om filen hittas returnerar den sökvägen till filen annars returnerar den Ingen.