Питхон методе копирања датотека
Питхон пружа уграђене функције за лако копирање датотека помоћу услужних програма Схелл оперативног система.
Следећа наредба се користи за копирање датотеке
shutil.copy(src,dst)
Следећа наредба се користи за копирање датотеке са метаподацима
shutil.copystat(src,dst)
Ево корака за копирање датотеке у Питхону
Корак 1) Пре него што копирамо датотеку, морамо да пронађемо путању до оригиналне датотеке у тренутном директоријуму. У коду -
- Изјава о променљивој
- Примена функције поделе на променљиву
Објашњење кода
- Прво ћемо проверити да ли наша датотека „гуру99.ткт“ постоји или не. Будући да смо раније креирали датотеку гуру99.ткт, знамо да она постоји и наставићемо даље са кодом
- Стазу датотеке чувамо у променљивој „ срц “ ако ваша датотека постоји
- Једном када добијемо путању, одвојићемо путању и име датотеке
- За то ћемо користити функцију сплит
path.split
на променљиву извора - Код извршења код одвојено исписује „ име датотеке “ и „ путању датотеке “
Корак 2) Користимо Схутил модул за креирање копије постојеће датотеке. Овде смо створили копију постојеће датотеке „гуру99.ткт“.
Објашњење кода
- Узмите оригинално име датотеке „гуру99.ткт“ и додајте слова .бак на крају „гуру99.ткт.бак“. Ово име са наставком .бак биће наша дупликата
- А онда ћемо користити услужну функцију копирања за копирање од извора до одредишта
- Када покренете код, видећете дупликат датотеке са наставком .бак створен на десној страни панела
Корак 3) Функција копирања копира само садржај датотеке, али не и друге информације. Да бисте копирали мета-податке повезане са датотеком, дозволом за датотеку и осталим информацијама, морате користити функцију " цопистат ". Пре него што покренемо овај код, морамо да избришемо нашу копију „гуру99.тект.бак“.
Једном када избришете датотеку и покренете програм, створит ће копију ваше .ткт датотеке, али овог пута са свим информацијама попут дозволе датотеке, времена измјене и података о мета-подацима . Можете да одете у љуску свог ОС-а да бисте проверили информације.
Ево шифре
import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()
Корак 4) Можете да преузмете информације о последњој измени текстуалне датотеке
- Линија кода # 15 - Каже дан, датум, месец, годину и време када је .ткт датотека (гуру99) последњи пут измењена. Користимо модул путање да бисмо добили детаље о времену модификације датотеке, а затим ћемо користити функцију временских класа ц време да то претворимо у читљиво време. Дакле, када смо покренули код, можемо видети датотеке гуру99.ткт је последњи пут измењена Мон, Јан 8 -ог у 13:35 2018.
- Линија кода # 17 - Ради исту ствар дајући информације о модификацији датотеке, али има другачији формат који је представља. Овде користимо функцију Гет Модифицатион Тиме (патх.гетмтиме ("гуру99.ткт")). Сада ћемо уместо функције ц времена користити функцију Фром Тиме Стамп и конструисати објект датума и времена. У излазу можете видети да се детаљно исписује време модификације датотеке у другом формату 2018-01-08, 13: 35: 51.334072
Ево шифре
## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()
Резиме
- Да бисте креирали копију постојеће датотеке помоћу кода схутил.цопи (срц, дст)
- За копирање свих података изворне датотеке у дупликат датотеке, као што је дозвола датотеке, време измене или подаци о мета-подацима , употребом кода схутил.цопистат (срц, дст)