logo

Схутил модул у Питхон-у

У овом водичу ћемо научити о модулу Схутил у Питхон-у. Разговараћемо о томе како можемо да извршимо операцију са датотекама на високом нивоу, као што је креирање нове датотеке за копирање и архивирање и копирање садржаја једне датотеке у другу датотеку користећи Питхон скрипту. Хајде да основно представимо Схутил модул.

нп.лог

Питхон Схутил модул

Питхон схутил модул пружа могућност за обављање операције са датотекама на високом нивоу. Може да ради са објектом датотеке и нуди нам могућност копирања и уклањања датотека. Он обрађује семантику ниског нивоа као што је креирање и затварање фајл објеката након извођења свих операција.

Рад Схутил модула

Питхон схутил модул долази са многим уграђеним методама. Истражићемо неколико важних метода. Да бисмо почели да радимо са овим модулом, прво морамо да га увеземо у нашу тренутну Питхон датотеку.

Копирај датотеке

Овај модул обезбеђује цопи() функција која се користи за копирање података из једне датотеке у другу. Датотеке морају бити у истом директоријуму и одредишна датотека мора бити уписана. Хајде да разумемо следећу синтаксу.

Синтакса-

 shutil.copyfile(source, destination, *, follow_symlinks = True) 

Параметар:

У горњој синтакси -

  • Први аргумент је извор који показује путању изворне датотеке.
  • Други аргумент је одредиште које показује путању одредишне датотеке.
  • Трећи аргумент је опциони; подразумевана вредност овог параметра је тачна.
  • Враћа стринг који показује путању новокреиране датотеке.

Хајде да разумемо следећи пример.

Пример -

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

Излаз:

 Empty Folder: [] File Copied Name: ['testcompare.py'] 

Објашњење -

Функција цопи() узима име директоријума као аргумент. Ево метаподаци није копирана, копирана датотека ће се сматрати као свеже креирана датотека. Овај метод је такође клонирао све дозволе датотеке. Једна ствар коју треба напоменути је да ако одредишна датотека већ постоји, она ће бити замењена изворном датотеком.

Хајде да видимо још један пример.

Пример - 2 ако је одредиште именик

 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) 

Излаз:

 D:Python ProjectNewFilehello.txt 

Као што смо споменули, функција цопи() не копира метаподатке. Али, ми ћемо користити цопи2() функција која нам омогућава да копирамо датотеку укључујући њене метаподатке.

Пример - 3: Руковање грешком при коришћењу методе копирања

 # 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.') 

Излаз:

 Source and destination represents the same file. 

Функција цопи2().

Ова функција је слична оној цопи() функција. Такође може да копира садржај једне датотеке у другу, али једина разлика је што може да сачува метаподатке датотеке. Хајде да разумемо следећу синтаксу.

Синтакса:

 shutil.copy2(source, destination, *, follow_symlinks = True) 

Параметар:

У горњој синтакси -

  • Први аргумент је извор који показује путању изворне датотеке.
  • Други аргумент је одредиште које показује путању одредишне датотеке.
  • Трећи аргумент је опциони; подразумевана вредност овог параметра је тачна.
  • Враћа стринг који показује путању новокреиране датотеке.

Хајде да разумемо следећи пример.

Пример -

 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) 

Излаз:

 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 

Функција схутил.цопифиле().

Овај метод се користи за копирање садржаја изворне датотеке у одредишну датотеку, очекујући метаподатке. Извор и одредиште морају да имају датотеку, а одредишна датотека мора да обезбеди дозволу за писање. Ако већ постоји одредишна датотека, она ће бити замењена новом датотеком, иначе креирајте нову датотеку.

шта је дупла јава

Хајде да видимо следећу синтаксу.

Синтакса:

 shutil.copyfile(source, destination, *, follow_symlinks = True) 

Параметри:

мискл уметни у

У горњој синтакси -

  • Први аргумент је извор који показује путању изворне датотеке.
  • Други аргумент је одредиште које показује путању одредишне датотеке.
  • Трећи аргумент је опциони; подразумевана вредност овог параметра је тачна.
  • Враћа стринг који показује путању новокреиране датотеке.

Хајде да разумемо следећи пример.

Пример -

 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) 

Излаз:

 D:Python ProjectNewFilehi.txt 

Функција схутил.цопитрее().

Овај метод се користи за реплицирање комплетног директоријума. Копира цело стабло директоријума укорењено на извору у одредишни директоријум. Одредишни директоријум не сме већ бити присутан. Хајде да видимо следећу синтаксу.

Синтакса:

 shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False) 

Параметри:

У горњој синтакси:

    срц -Приказује путању изворног директоријума.рука -Приказује путању одредишног директоријума.симболичке везе (опционо) -Узима Булове вредности - Тачно и Нетачно. Зависи од тога који ће метаподаци оригиналних веза или веза бити копирани у ново стабло.игнорисати (опционо) -Подразумевано је Ноне, али ако је игнорисање прослеђено, то мора бити позивно средство које прима као своје аргументе. Директоријум посећује цопитрее().цопи_фунцтион (опционо) -Цопи2 је подразумевана вредност овог параметра. Тхе цопи() функција се може користити као параметар.игноре_данглинг_симлинкс (опционо) -Овај параметар се користи за подизање изузетка ако датотека на коју указује симболична веза не постоји.
  • Враћа стринг који представља путању новокреираног директоријума.

Пример -

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

Излаз:

 Destination path: D:Python ProjectNewFolder 

Тхе схутил.рмтрее()

Овај метод се користи за брисање комплетног стабла директоријума. Хајде да видимо следећу синтаксу.

Синтакса:

стринг цонцат јава
 shutil.rmtree(path, ignore_errors=False, onerror=None) 

Параметар-

У горњој синтакси -

    пут -Представља путању датотеке. Објекат сличан путањи је или стринг или објекат бајтова.игноре_еррорс -Уклањање ће бити занемарено ако је овај аргумент Тачан.грешка -Ако игноре_еррорс је нетачан, такве грешке се решавају позивањем руковаоца који је наведен помоћу онеррор.

Хајде да разумемо следећи пример -

Пример -

 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) 

Горњи код ће уклонити дати директоријум.

Функција схутил.вхицх().

Тхе схутил.вхицх() функција се користи за добијање путање извршне апликације која би била покренута ако је дата цмд позвана. Проналази датотеку на датој путањи. Хајде да видимо следећу синтаксу.

Синтакса:

 shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None) 

Параметерс

У горњој синтакси -

    цмд -То је стринг који представља датотеку.режим -Он одређује начин датотеке у којој метод треба да се изврши.пут -Овај параметар одређује путању која ће се користити.
  • Овај метод враћа путању до извршне апликације.

Хајде да разумемо следећи пример.

Пример -

 # importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating) 

Излаз:

 C:Pythonpython.EXE 

Пронаћи ће дату датотеку на рачунару, ако је датотека пронађена, враћа путању датотеке у супротном враћа Ништа.