no.name.nb
Hectopat
- Katılım
- 15 Ocak 2021
- Mesajlar
- 212
Merhabalar. Böyle bir kod çalıştırdım yanlışlıkla ne işe yarıyor bu?
os.path.join()
, () içersine yazılan parametrelere yol oluşturuyor.os.getenv()
, () içersine yazılan parametrenin adresini veriyor gibi düşünebiliriz. terminalde kullanılan cd
komutu gibi düşünlebilir.file
değişkeni, tuple olarak belirlenen yani bildiğimiz normal parantezler içerisindeki değerlerde dolaşan bir döngü kuruluyor.os.listdir()
biz bir liste döndürüyor. İlk paragrafta dilimin döndüğünce söylemeye çalıştığım işlemi cache_path adındaki değişkene atadığından burada da os.listdir(cache_path)
olarak yazıyor ki değerler bir liste niteliğine dönüşsün. Bu işlemin ardından, for döngüsünde tanımdalığı x değişkeni bu listenin içerisindeki elemanlarda dolaşıyor bunu tuple olarak tutuyor. (yani orada yazılan şey alt yalta yazılsa idi bi tane daha değişken oluşturup bu oluşturulan değişkene boş bir tuple yani içi boş liste gibi düşünebileceğiniz bir normal parantez aç kapa yapılarak atanırdı. Bunu yazan eleman bundan tasarruf için böyle bir yönteme başvurmuş hiç sevmem daha zor anlarım böyle yazılan kodları)
Ardından yanında yazdığı koşul ifadesinde ise o listenin içinde dolanan x değişkeninin uğradığı elemanın başlangıç harfi veya kelimesi "f_" ise true değeri döndür demiş.with
satırına geliyorum. open fonksiyonun ilk parametresine yine os.path.join() diyerek ilk parametresine en başta oluşturduğu değişkeni ikinci parametresi olarakta ilk for döngüsünün değişkenini atıyor. böylece adres belirlenmiş oluyor. "C://Users//Falanca//Şu_klasör" gibi. Bunu okuma kipinde okuyor şayet şöyle bir farkla bunu byte formatında açıyor. Yani byte formatında okuyor. Çünkü kodun en başında byte formatında yazdığı * ifadelerinden oluşan benimde anlamadığım bir değişken tanımlamış.. Bu işlemi fd
ile isimlendirmiş. Sonra bunu buf adını verdiği değişkene atayarak okuma işlemini gerçekleştirmiş.DELIMITER
buf
ın içerisinde var ise yani okunduğunda içerisinde DELIMITER
değişkenine atanan değer var ise (rindex in ne olduğunu bilmiyorum ) sanrım integer
bir değer döndürüyor ki DELIMITER
'in uzunluğu ile toplamış. Bu değeri payload
değişkeni oluşturup buf
değişkeninin ilk (atıyorum 5 harfi orada ne denk geliyorsa kodu da test etmediğimden birşey diyemiyorum o açıdan ) o kadar ki harfini payload değişkenine atıyor. exec kısmı ise aslında biraz tuhaf içerisinde matematik işlemi yapıldığı sıra(string
olarak) bunun işlemini veriyor. Ee sonunda da tabi döngüden çıkmak için break anahtar kelimesini kullanıyorf_
ile başlayan dosyaları binary formatta okuyup son ayraçtan itibaren sonraki kısmı ayırıp execute ediyor.Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.