Python öğrenmek için çalışırken bir problemle karşılaşmış ve tıkanmış durumdayım. Problemin isteği şu şekilde:
Elimde .txt uzantılı bir dosya var ve dosyanın içeriği şöyle:
[386Enh]
woafont=dosapp.fon
EGA8OWOA.FON=EGA8OWOA.FON
EGA4OWOA.FON=EGA4OWOA.FON
CGA8OWOA.FON=CGA8OWOA.FON
CGA4OWOA.FON=CGA4OWOA.FON
[drivers]
wave=mmdrv.dll
timer=timer.drv
[mci]
Öncelikle bu dosyanın okunması isteniyor(bunu yapabiliyorum tabii ki). Asıl sıkıntı şu, bu metinde köşeli parantez içerisinde kalan tüm ifadelerin sözlük anahtarı olması, bu anahtarlara karşılık gelen değerlerin de yine birer sözlük olması gerekiyor. İçerideki sözlüklerin anahtarları, değeri oldukları köşeli parantezli ifade ile bir sonraki köşeli parantezli ifadenin arasındaki eşitliklerin sol tarafı olacak. İçerideki sözlüklerin değerleri de yine aynı kısımdaki eşitliklerin sağ tarafı olacak.
Hangi enstrümanlardan nasıl yararlanabilirim bu sözlüğe ulaşabilmek için? Lütfen çözümü doğrudan yazmaktan ziyade çözüme ulaşabilmem için ipuçları veriniz
Merhaba, istediğiniz sözlüğün anahtarlarını köşeli parantezlerin içerisinde olan elemanlar belirlediğine göre evvela köşeli parantezle başlayan bir satıra denk geldiğinizi saptayarak başlayabilirsiniz, ne dersiniz?
Yorumunuz için çok teşekkür ederim. Benzer bir yöntemi [] ile başlayan ifadeleri listeye alarak da denedim ama bir sonraki adıma geçememiştim. Sanırım siz readlines() komutuyla saptamam gerektiğini söylüyorsunuz
Eğer bir satırın köşeli parantezle başladığını saptayabiliyorsanız, o aşamada sözlüğe bir anahtar eklemek gerekir, değil mi? Peki ya satır köşeli parantezle başlamıyorsa…
İlerlediğim kitapta bu soru modüller/kütüphaneler konusundan önce sorulmuş. Yani listeleri-dosyaları-sözlükler vs pratik yapmak için, o yüzden attığınız linki şimdilik kullanamayacağım.
Öyledir belki ama olası çözümleri görmek problemi sıfırdan çözmeye çalışan kişinin hevesini kırabilir ve/veya kişi sunulan çözümlerin karmaşıklığı karşısında “tüh, ben bunu yazamazdım zaten” deyip tamamen pes edebilir…