Merhaba Değerli Forum Üyeleri,
Python, dosya yönetimi ve analizi için güçlü araçlar sunar. Bu yazıda, bir python programı aracılığıyla dosya adını, yolunu, boyutunu, oluşturulma ve değiştirilme tarihlerini, erişim izinlerini nasıl alabileceğimizi ve dosyanın içeriğini byte düzeyinde nasıl okuyabileceğinizi anlatmaya çalışacağım. Bu tür bir analiz, özellikle dosya manipülasyonları, veri kurtarma veya adli bilişim süreçlerinde önemli olabilir.
Dosya Bilgilerini Alma
Dosya bilgilerini almak, dosya işlemleri sırasında oldukça önemli bir adımdır. Bu bilgiler, dosya üzerinde yapılacak işlemler için bir temel sağlar. Python'un 'os' ve 'time' modülleri, bu tür bilgileri almak için gerekli işlevleri sunar.
Dosya Bilgilerini Alma Fonksiyonu
İlk adımda, 'get_file_info()' fonksiyonu kullanılarak dosya hakkındaki temel bilgiler elde ediliyor. Bu bilgiler, dosyanın adı, dosya yolu, boyutu, oluşturulma ve son değiştirilme tarihleri ile dosya izinlerinden oluşur. Bu fonksiyonun detaylarına bakalım:
Python:
import os
import time
def get_file_info(path):
# Dosya adını alır
file_name = os.path.basename(path)
# Dosyanın tam yolunu alır
file_path = os.path.abspath(path)
# Dosya boyutunu byte olarak alır
file_size = os.path.getsize(path)
# Dosyanın oluşturulma tarihini alır
creation_time = time.strftime("%d %B %Y %A %H:%M:%S", time.localtime(os.path.getctime(path)))
# Dosyanın son değiştirilme tarihini alır
modification_time = time.strftime("%d %B %Y %A %H:%M:%S", time.localtime(os.path.getmtime(path)))
# Dosyanın erişim izni bilgilerini alır
file_permissions = oct(os.stat(path).st_mode)[-3:]
return {
"name": file_name,
"path": file_path,
"size": file_size,
"creation_time": creation_time,
"modification_time": modification_time,
"permissions": file_permissions
}
* 'os.path.basename(path)': Dosyanın bulunduğu dizinden bağımsız olarak sadece adını alır. Örneğin, 'C:\Kullanıcılar\Ahmet\belge.txt' yolunda 'belge.txt' dosya adına döndürülür.
* 'os.path.abspath(path)': Verilen dosya yolunun tam (mutlak) yolunu döndürür. Bu, dosyanın bulunduğu dizine göre göreceli bir yol yerine, tam adresini verir.
* 'os.path.getsize(path)': Dosyanın boyutunu byte cinsinden döndürür. Bu, özellikle büyük dosyaların boyutlarını analiz ederken önemlidir.
* 'time.strftime()' ve 'time.localtime()': Dosyanın oluşturulma ve değiştirilme tarihlerini, insan tarafından okunabilir bir formata çevirir. Tarih ve saat bilgileri, çoğu işletim sisteminde epoch zamanına göre saklanır. Bu zamanı yerel zaman diliminde bir formata çevirir.
* 'os.stat(path).st_mode': Dosya üzerindeki erişim izinlerini döndürür. Bu izinler, dosyanın sahibinin, grubun ve diğer kullanıcıların dosyayı okuma, yazma ve çalıştırma izinlerini belirler.
Çıktısı ise böyledir.
Byte Okuma Fonksiyonu
Python:
def read_file_bytes(path):
# Dosyayı byte olarak okur
with open(path, 'rb') as file:
content = file.read()
return content
* 'with open(path, 'rb') as file': Bu ifade, dosyayı binary (ikili) modda açar. 'rb' modu, dosyanın ikili verilerini bozmadan olduğu gibi okunmasını sağlar. Text modunda okuma yapıldığında, dosyanın içeriği karaktere çevrilir ve bazı durumlarda veri kaybı veya bozulma olabilir.
* 'file.read()': Dosyanın tamamını okur ve içerik byte formatında döndürülür.
Not: Dosyanın byte ne kadar büyükse çıktısı o kadar uzun çıkacaktır.
Dosya Detaylarının Gösterimi
Dosya bilgilerini ve dosya içeriğini ekrana yazdırmak, kullanıcı için bilgileri sunar. Aşağıdaki fonksiyon, alınan bilgileri ve dosyanın byte içeriğini ekrana yazdırır:
Python:
def show_file_details(file_path):
# Dosya bilgilerini alır
info = get_file_info(file_path)
print(f"Dosya Adı: {info['name']}")
print(f"Dosya Yolu: {info['path']}")
print(f"Dosya Boyutu: {info['size']} byte")
print(f"Dosya Oluşturulma Tarihi: {info['creation_time']}")
print(f"Dosya Son Değiştirilme Tarihi: {info['modification_time']}")
print(f"Dosya Erişim İzinleri: {info['permissions']}")
print(f"Dosya İçeriği (Byte):\n")
# Dosyanın byte içeriğini okur ve gösterir
byte_content = read_file_bytes(file_path)
for i, byte in enumerate(byte_content):
print(f"Byte {i+1}: {byte}")
* 'enumerate(byte_content)' : 'enumerate' fonksiyonu, 'byte_content' dizisindeki her bir byte'ı numaralandırır. Bu numaralar ve byte değerleri ekrana basılır. Bu, byte içeriğinin daha düzenli ve okunabilir bir formatta sunulmasını sağlar.
Kullanıcıdan Dosya Yolunu Alma ve Bilgileri Gösterme
Programın, kullanıcıdan dosya yolunu alarak yukarıda açıklanan bilgileri göstermesi için aşağıdaki kod kullanılır:
Python:
# Kullanıcıdan dosya yolunu alır
file_path = input("Lütfen dosya yolunu giriniz: ")
# Dosya detaylarını ve içeriğini gösterir
show_file_details(file_path)
Sonuç
Bu yazıda, Python kullanarak bir dosyanın adını, yolunu, boyutunu, oluşturulma ve değiştirilme tarihlerini, erişim izinlerini nasıl alabileceğimizi ve dosyanın içeriğini byte düzeyinde nasıl okuyabileceğimizi ele aldık.
Buraya kadar bana vaktinizi ayırdığınız için teşekkür ederim. Diğer konularımda görüşmek üzere.
Son düzenleme:



