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?
Örnek kodunu paylaşırmısın
Tapatalk kullanarak iPhone aracılığıyla gönderildi
[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.
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
[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.
File "./df.py", line 8
print(i, end='')
^
SyntaxError: invalid syntax
bu arad bu append ne işe yarıypr?
[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.
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ş.
Su sekilde dene istersen (https://uploads.tapatalk-cdn.com/20170601/e7ecac6edaf7f17e9c0f26f71f1c2b00.jpg)
Tapatalk kullanarak iPhone aracılığıyla gönderildi
[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)
L değişkeninde atıldı :)
(https://uploads.tapatalk-cdn.com/20170601/6b24f90c6dd01363dd58eb6bf175dd0a.jpg)
Tapatalk kullanarak iPhone aracılığıyla gönderildi
[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 :)
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
Aynen :)
Faydalı olması açısından kodu düzenledim.
(https://uploads.tapatalk-cdn.com/20170601/8ed1d16561065b3afb1e826e3e21193c.jpg)
Tapatalk kullanarak iPhone aracılığıyla gönderildi
Çok teşekkür ederim arkadaşlar ikinize de mükemmelsiniz :) Sorunu çözdüm sayenizde
[mention=626525]@marslı[/mention] ne demek biz teşekkür ederiz.
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
[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.
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 ?
[mention=626873]@marslı[/mention] https://stackoverflow.com/questions/18262293/python-open-every-file-in-a-folder
@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.
Örnek kod paylaşımı yapılmadığı müddetçe kimse yardımcı olamaz.
Örnek kod şurada: https://forum.ubuntu-tr.net/index.php?topic=56606.msg626511#msg626511
bu kodda değişiklik yapmak istiyorum