Mavzu: Fayl nazorat summasidan (Cheksum) foydalanib, takroriy ma'lumotlarni olib tashlash


Faylni nusxalash va ularni turli joylarda saqlash


Download 0.8 Mb.
bet3/6
Sana16.06.2023
Hajmi0.8 Mb.
#1493312
1   2   3   4   5   6
Bog'liq
Fayl nazorat summasidan (Cheksum) foydalanib, takroriy ma\'lumotlarni olib tashlash

Faylni nusxalash va ularni turli joylarda saqlash.

Quyidagi kod yordamida faylni nusxalash va ularni turli joylarda saqlashni amalga oshirishingiz mumkin:
import os
import shutil
import hashlib
# Faylni nomi va joylashuvi
filename = 'fayl_nomi.txt'
filepath = '/home/fayl_katalogi/'
# Faylga yo'l qo'shish
file_path = os.path.join(filepath, filename)
# Takroriy nusxalarni yaratish
directories = ['takroriy1', 'takroriy2', 'takroriy3']
for directory in directories:
os.makedirs(os.path.join(filepath, directory), exist_ok=True)
duplicate_path = os.path.join(filepath, directory, filename)
shutil.copyfile(file_path, duplicate_path)
print(f"{filename} fayli {directory} katalogiga nusxalandi")
# Takroriy nusxalardan birini o'qish va SHA-256 nazorat summasini hisoblash
with open(os.path.join(filepath, directories[0], filename), 'rb') as f:
data = f.read()
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
# Hisoblangan nazorat summasini chop etish
print("Takroriy faylning SHA-256 nazorat summasi:", hex_dig)

Bu kod yuqoridagi kodlar bilan bir xil ishni bajaradi, lekin bunda bir necha takroriy nusxalar yaratiladi va ular turli kataloglarda saqlanadi. Yuqoridagi kodning qo'shimcha qismida, directories degan ro'yxatda bir nechta takroriy katalog nomlari kiritiladi. os.makedirs metodi bilan har bir katalog yaratiladi, va har biriga fayl nusxalari shutil.copyfile metodi orqali saqlanadi. exist_ok=True parametri, mavjud bo'lmagan kataloglarni ham yaratishga ruxsat beradi.


Keyin directories[0] orqali birinchi takroriy katalogdagi faylni ochib, uning SHA-256 nazorat summasini hisoblaymiz va konsolga chop etamiz.
Bu kodni ishga tushirish uchun filename va filepath o'zgaruvchilariga o'z kerakli ma'lumotlaringizni kiritishingiz kerak.
Ba'zan fayl haqida boshqa ma'lumotlarga ham ega bo'lish kerak bo'ladi, masalan, faylning qachon yaratilganligi yoki o'zgartirilganligi haqida. Quyidagi kodda fayl haqida qo'shimcha ma'lumotlar ham mavjud:

import os


import shutil
import hashlib
import datetime
# Faylni nomi va joylashuvi
filename = 'fayl_nomi.txt'
filepath = '/home/fayl_katalogi/'
# Faylga yo'l qo'shish
file_path = os.path.join(filepath, filename)
# Takroriy nusxalarni yaratish
directories = ['takroriy1', 'takroriy2', 'takroriy3']
for directory in directories:
os.makedirs(os.path.join(filepath, directory), exist_ok=True)
duplicate_path = os.path.join(filepath, directory, filename)
shutil.copyfile(file_path, duplicate_path)
print(f"{filename} fayli {directory} katalogiga nusxalandi")
# Fayl haqida qo'shimcha ma'lumotlar
file_stat = os.stat(file_path)
creation_time = datetime.datetime.fromtimestamp(file_stat.st_ctime).strftime('%Y-%m-%d %H:%M:%S')
modification_time = datetime.datetime.fromtimestamp(file_stat.st_mtime).strftime('%Y-%m-%d %H:%M:%S')
size = file_stat.st_size
print(f"Faylning nomi: {filename}")
print(f"Faylning yaratilgan vaqti: {creation_time}")
print(f"Faylning o'zgartirilgan vaqti: {modification_time}")
print(f"Fayl hajmi: {size} bayt")
# Takroriy nusxalardan birini o'qish va SHA-256 nazorat summasini hisoblash
with open(os.path.join(filepath, directories[0], filename), 'rb') as f:
data = f.read()
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
# Hisoblangan nazorat summasini chop etish
print("Takroriy faylning SHA-256 nazorat summasi:", hex_dig)

Bu kod yuqoridagi kodlarga qo'shimcha qism qo'shib, fayl haqida qo'shimcha ma'lumotlar ham chiqaradi. os.stat metodi orqali fayl haqida statistik ma'lumotlar olinadi, datetime.datetime.fromtimestamp metodi orqali esa vaqtni kuzatuvchan formatga o'zgartiriladi.


Kodni ishga tushirish uchun filename va filepath o'zgaruvchilariga o'z kerakli ma'lumotlaringizni kiritishingiz kerak.
Fayllar dasturiy ta'minotning muhim qismidir. Fayllar, dasturlar tomonidan ma'lumotlarni saqlash va ularga qayta ishlov berish uchun foydalaniladi. Fayllarni turlari va shakllari mavjud bo'lib, ularga doimiy yoki vaqtinchalik kirish mumkin.
Fayllar dastur tomonidan yaratilishi mumkin va odatda foydalanuvchilar tomonidan ham yaratilishi mumkin. Fayllarning nomi, hajmi, turining belgilash uchun xususiyatlar mavjud bo'lib, ulardan foydalaniladigan dasturlar juda ko'p. Fayllarning shakli odatda matn, rasmlar, video, ma'lumotlar bazasi, dastur kodi va boshqalar o'z ichiga oladi.
Fayllarni qidirish, nusxalash, saqlash va ochish imkoniyatini beruvchi funksiyalar mavjud bo'lib, ularga tuziladigan yo'llar esa tizim operatsion dasturi tomonidan ta'minlanadi. Fayllarning muhim xususiyati shundaki, ularga qo'shimcha ma'lumotlar ham biriktirilishi mumkin, masalan, faylning yaratilgan vaqti, o'zgartirilgan vaqti, nazorat summasi va hokazo.
Bundan tashqari, fayllar dasturlash, ma'lumotlar bazasi, rasmlar va video tahrirlash, web-saytlarni yaratish va boshqalar kabi ko'plab sohalarda keng qo'llaniladi. Fayllar tarmoqlar orqali yuborilishi va qabul qilinishi ham mumkin.
Fayllar to'g'ridan-to'g'ri dastur kodi yordamida yaratilishi mumkin yoki tayyor tashqi kutubxonalardan olinishi mumkin. Fayllarni yaratish uchun foydalaniladigan turlari odatda ko'p xil formatlarga ega bo'lib, ba'zilari matn formatlarida (masalan, txt), ba'zilari rasmlar va video formatlarida (masalan, jpeg, png, mp4) va ba'zilari ham tuzilgan ma'lumotlar bazasi formatlarida bo'lishi mumkin.
Python dasturlash tili fayllarni yaratish, saqlash va ularga qayta ishlov berish uchun ko'p xil modullar yordamida yaratilgan. Misol uchun, os, shutil, glob va boshqalar kabi modullar fayllarni boshqarish uchun ko'p imkoniyatlar beradi. Fayllarning nomini va yo'lini aniqlash uchun os moduli, fayllarni nusxalash uchun shutil moduli, ko'p fayllarni boshqarish uchun glob moduli va hokazo qo'llaniladi.
Python dasturlash tili orqali fayllarni ochish, yozish va uni boshqa formatlarga konvert qilish ham osonlik bilan amalga oshirilishi mumkin. Buning uchun ko'p xil kutubxonalardan foydalaniladi, masalan, pillow kutubxonasi rasmlarni boshqarish uchun foydalaniladi, moviepy kutubxonasi video tahrirlash uchun foydalaniladi.
Bularning yanada ko'proq namoyish etilishi va dastur tomonidan foydalaniladi.

Download 0.8 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling