Ubuntu Türkiye

Yazılım => Programlama => Python => Konuyu başlatan: marslı - 01 Haziran 2017 - 23:40:16

Başlık: Python satırı değişkene atamak
Gönderen: marslı - 01 Haziran 2017 - 23:40:16
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?
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: szgnblt - 01 Haziran 2017 - 23:55:29
Örnek kodunu paylaşırmısın


Tapatalk kullanarak iPhone aracılığıyla gönderildi
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 01 Haziran 2017 - 23:57:27
[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.
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: marslı - 02 Haziran 2017 - 00:07:11
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
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 00:33:14
[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.
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: marslı - 02 Haziran 2017 - 00:36:36
  File "./df.py", line 8
    print(i, end='')
                ^
SyntaxError: invalid syntax


bu arad bu append ne işe yarıypr?
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 00:44:12
[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.
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: marslı - 02 Haziran 2017 - 00:50:18
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ş.
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: szgnblt - 02 Haziran 2017 - 01:08:57
Su sekilde dene istersen (https://uploads.tapatalk-cdn.com/20170601/e7ecac6edaf7f17e9c0f26f71f1c2b00.jpg)


Tapatalk kullanarak iPhone aracılığıyla gönderildi
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 01:10:11
[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)

Başlık: Ynt: Python satırı değişkene atamak
Gönderen: szgnblt - 02 Haziran 2017 - 01:11:25
L değişkeninde atıldı :)

(https://uploads.tapatalk-cdn.com/20170601/6b24f90c6dd01363dd58eb6bf175dd0a.jpg)


Tapatalk kullanarak iPhone aracılığıyla gönderildi
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 01:14:02
[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 :)
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: szgnblt - 02 Haziran 2017 - 01:18:29
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
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 01:22:06
Aynen :)
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: szgnblt - 02 Haziran 2017 - 01:32:43
Faydalı olması açısından kodu düzenledim.

(https://uploads.tapatalk-cdn.com/20170601/8ed1d16561065b3afb1e826e3e21193c.jpg)


Tapatalk kullanarak iPhone aracılığıyla gönderildi
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: marslı - 02 Haziran 2017 - 11:42:28
Çok teşekkür ederim arkadaşlar ikinize de mükemmelsiniz :) Sorunu çözdüm sayenizde 
Başlık: Ynt: [Çözüldü] Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 12:19:36
[mention=626525]@marslı[/mention] ne demek biz teşekkür ederiz.
Başlık: Ynt: [Çözüldü] Python satırı değişkene atamak
Gönderen: Lexa - 02 Haziran 2017 - 16:50:26
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

Başlık: Ynt: [Çözüldü] Python satırı değişkene atamak
Gönderen: lrnyrd - 02 Haziran 2017 - 17:30:20
[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.
Başlık: Ynt: [Çözüldü] Python satırı değişkene atamak
Gönderen: marslı - 08 Haziran 2017 - 14:27:35
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 ?
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: lrnyrd - 08 Haziran 2017 - 19:03:02
[mention=626873]@marslı[/mention] https://stackoverflow.com/questions/18262293/python-open-every-file-in-a-folder
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: marslı - 09 Haziran 2017 - 00:23:15
@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. 
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: szgnblt - 10 Haziran 2017 - 03:13:35
Örnek kod paylaşımı yapılmadığı müddetçe kimse yardımcı olamaz.
Başlık: Ynt: Python satırı değişkene atamak
Gönderen: marslı - 11 Haziran 2017 - 14:30:49
Örnek kod şurada: https://forum.ubuntu-tr.net/index.php?topic=56606.msg626511#msg626511
bu kodda değişiklik yapmak istiyorum