Python satırı değişkene atamak

Başlatan marslı, 01 Haziran 2017 - 23:40:16

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

marslı

Merhaba arkadaşlar. Bazen kendime "lan yürümeyi öğrenmeden koşmaya çalışıyosun" desemde koşmak hız kazandırır diyip kendimi avutuyorum :D

Yapmak istediğim şey, bir dosyayı açıp içinden bir satırı aramak ve aradığım satırı değişkene atamak. Dosyayı açıyorum, kelimeyi dosyadan buluyorum. Ama bir türlü değişkene atayamıyorum. İçinde XX geçen satırı buldum diyelim ama satırın devamı olsun. Dosyadan XX'si buldum ve bu satırın tamamını L değişkenine atamak istiyorum. Nasıl yapabilirim?

szgnblt

Örnek kodunu paylaşırmısın


Tapatalk kullanarak iPhone aracılığıyla gönderildi

lrnyrd

[mention=626499]@marslı[/mention] Yapabildiğiniz yere kadar keşke kodları koysaydınız en azından dosya içinde arama yöntemine göre bir fikir yürütebilirdik. Ancak şöyle söyliyeyim
bir degişken oluşturun daha sonra dosyayı açın açtığınız dosyayı nasıl yapıyorsanız artık read mi readline mı readlines mı yada başka birşeymi kullanıyorsunuz istediğiniz satırı bulmak için onu kullanın bulduğunuz satır size hangi tipte geliyorsa ona göre metod uygulayarak bir değişkene atayabilirsiniz. Mesela readlines bize liste verir. Bunu append ile boş bir liste değişkenine atayabilirsiniz.
Sometimes even good memories can kill you!

marslı

Kullandığım kod şu:
f = open("veri.txt", "r").read()
if "ubuntu" in f:
     print ("ubuntu var")
veri.txt dosyasının içindeki ubuntu satırı söyle:
debian=8
ubuntu=xenial
arch=rolling 
L değişkenine ubuntu ile başlayan satırı olduğu gibi atamak istiyorum.

@lrnyrd işte değişkene atama kısmını yapamadım

lrnyrd

#4
[mention=626503]@marslı[/mention]
f = open("a.txt")
a = f.readlines()
b = []
for i in a:
    print(i, end= '')

    if i.startswith("ubuntu"):
        b.append(i)

print (b)
en basit haliyle şu şekilde yapabilirsin.
Sometimes even good memories can kill you!

marslı

  File "./df.py", line 8
    print(i, end='')
                ^
SyntaxError: invalid syntax


bu arad bu append ne işe yarıypr?

lrnyrd

[mention=626505]@marslı[/mention] python3 ile çalıştırdığınıza eminmisiniz yoksa syntax hatası vermemesi gerekiyor şimdi tekrar denedim yine çalıştı. Kodların tamamını geçin isterseniz tekrar bakayım. Append kelime anlamı genişlet demektir. Listelerin metodlarından biridi liste içerisine listenin sonuna öğe eklemeye yarar. Yalnız dikkat edilmesi gereken listeye sadece bir öğe ekler.
Sometimes even good memories can kill you!

marslı

Pardon python3 ile çalıştırınca çalıştı :)

Komutun çıktısı aşağıdaki gibi oldu.
debian=8
ubuntu=xenial
arch=rolling  
['ubuntu=xenial\n']


Yalnıca ubuntu satırını b değişkenine ataması gerekiyor. Çıktıda hepsini göstermiş.

szgnblt

Su sekilde dene istersen


Tapatalk kullanarak iPhone aracılığıyla gönderildi

lrnyrd

[mention=626507]@marslı[/mention]

verdiğim koddan sadece şu satırıcı çıkarmanız yeterli ben göstermek için o satırıda ekledim.
f = open("a.txt")
a = f.readlines()
b = []
for i in a:
    if i.startswith("ubuntu"):
        b.append(i)

print (b)

Sometimes even good memories can kill you!

szgnblt

L değişkeninde atıldı :)




Tapatalk kullanarak iPhone aracılığıyla gönderildi

lrnyrd

[mention=626508]@szgnblt[/mention] input zaten string döndürmüyormu tekrar str'ye neden çevirdiniz anlamadım? Birde arkadaş buduğu öğeyi değişkene atamak istiyor siz hiç değişken kullanmadan bunu nasıl başardınız? Merak ettim eğer öyle oluyorsa bende öyle yapayım :)


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Haziran 2017 - 01:16:51

[mention=626511]@szgnblt[/mention] Tamamdır şimdi fark ettim ben işin içine listeleride kattım sizinki daha temiz oldu :)
Sometimes even good memories can kill you!

szgnblt

Beyin jimnastiği oldu. Mümkün olduğu kadar kod verip soru sorulursa sinerji olur :) hayırlı olsun


Tapatalk kullanarak iPhone aracılığıyla gönderildi

lrnyrd

Sometimes even good memories can kill you!

szgnblt

Faydalı olması açısından kodu düzenledim.




Tapatalk kullanarak iPhone aracılığıyla gönderildi

marslı

Çok teşekkür ederim arkadaşlar ikinize de mükemmelsiniz :) Sorunu çözdüm sayenizde 

lrnyrd

[mention=626525]@marslı[/mention] ne demek biz teşekkür ederiz.
Sometimes even good memories can kill you!

Lexa

Olaya çok fransız kaldım ben yeni yeni öğreniyorumda linuxu bu olay ne işe yarıyor ne gibi bir faydası var

General Mobile 4G Dual cihazımdan Tapatalk kullanılarak gönderildi


lrnyrd

[mention=626534]@Lexa[/mention] Olay linux'dan bağımsız. Python programlamada arkadaş dosya içerisinde arama yapıp değişkene atayamamış bizde yardımcı olduk.
Sometimes even good memories can kill you!

marslı

Konuyu kilitlememişler çok iyi yaa :D 

Bir sorum daha olacak bu konuyla ilgili. Yukarıda ki kodda bir dosyayı açıp aramış, bir klasör içindeki tüm dosyaları açıp nasıl o satırlar içinde arayabiliriz ?

lrnyrd

Sometimes even good memories can kill you!

marslı

@lrnyrd ordakilere baktım da çok istediğim değil. Şurayı yapamadım. yukarıdaki gibi dosyaların içini açıp okuyorum. bir değişken belirledim değişkene dizini atadım. for line ile dosyaları tek tek liste haline getirdim. ama sürekli Caught TypeError while rendering: coercing to Unicode: need string or buffer" hatası veriyor. /proc/ dosyası içindeki tüm dosyalarda ubuntu kelimesini aramak istiyorum. 

szgnblt

Örnek kod paylaşımı yapılmadığı müddetçe kimse yardımcı olamaz.

marslı