Python dosya işlemleri

Başlatan Sirayet, 29 Ekim 2013 - 18:55:45

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

Sirayet

Merhaba,

ben Python ile şöyle bir program yazmak istiyorum;

Photorec programı ile kurtarılan dosyalar /home/sercan dizini altına recup_dir.*(* 1'den başlayan sayıları ifade ediyor) adı altında kayıt ediliyor. Her recup_dir dosyası içinde txt, png, exe vb. şeklinde kurtarılmış dosyalar mevcut. Yapmak istediğim şeyin algoritmasını şöyle çıkarttım,

1. recup_dir.* dosyasını aç
2. .txt uzantılı dosyayı aç
3. eğer ilk satırda "http://" okunursa dosyayı masaüstüne kopyala
4. eğer ilk satırda "http://" okunmazsa dosyayı sil.

şimdi benim şöyle bir sorunum var.

os kütüphanesini import ediyorum ardından for döngüsüyle,

os.system("cd rekup_dir.[0]")

0 yerine 1 2 3.. gelecek şekilde o dosyayı açıcak. For ile gelen 0'ı string olarak görüceği için döngüden faydalanamıyorum.

2. sorun

ilk satırda imlecin geldiği 7. yere kadar http:// var mı? yok mu? diye sordurmak istiyorum ama adını bilmediğim .txt uzantılı dosyaları read() ile teker teker okutmayı bilmiyorum.

Not: Python'da en alt seviyedeyim ama bu programı yazıp o dosyayı bulmam gerekiyor.

İlgilenirseniz sevinirim.

furkankalkan

Python yerine find ve  grep ile yapılabilir aslında ama şuan nasıl olur hiçbir fikrim yok.
Lover
twitter.com/furkan_kalkan1

cagriemer

Illa python olmasi gerekmiyorsa;

for recoveredFile in $(find . -name *.txt); do if [ ! -z $(head -n1 $recoveredFile | grep "http") ]; then cp $recoveredFile yedekle/; fi; done


diyelim butun recup_dir dizinlerinin oldugu bir ana dizin olsun. Terminalde bu anadizine gecin. O dizinde "yedekle" isminde bir dizin olusturun. Ardindan yukaridaki komutu calistirin. Ilk satirinda http olan ve ana dizinde bulunan tum .txt uzantili dosyalar yedekle isimli dizine kopyalanir. Eger birden fazla ayni isimde dosya varsa, daha once yedeklenen dosyanin uzerine yazilir o yuzden dikkatli olmakta fayda var.