Python belirli kelimeden sonrasını yazdırma

Keenact

Hectopat
Katılım
23 Aralık 2018
Mesajlar
932
Çözümler
6
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar, size kısaca konuyu anlatıyım.

Python ile HTML'den data'yı çektim.

Çektiği data'da 800 küsür satır şu şekilde bir output var:
.....
LAB BUILD 1 #112
ACAD BUILD 1 #1301
LAB BUILD 1 #112
....

Benim amacım bu 800 küsür satır olan autput'da #'den sonraki sayıları yazdırmak, örneğin:
112, 1301, 112

Baya bir yöntem denedim OS importuyla TXT'nin içindende çekmeye çalıştım olmadı. Programlamadan ufakta olsa anlayan arkadaşlar yardım ederse sevinirim.
 
Son düzenleyen: Moderatör:
Çözüm
"urlopen" dan dolayı python2 kodudur.
Python:
from urllib import urlopen

nums = []
response = urlopen("http://adres") 
lines = response.readlines()
for line in lines:
   if '#' in line:
       parts = line.split("#")
       num = int(parts[1].replace('\n', ''))
       nums.append(num);
print(nums)
Hocam python hakkında tam bir bilgiye sahip değilim. Ama her karakteri döngü ile dönerek "#" karekterini arayabilir ve sonrasindaki karakterlere tür kontrolü deneyebilirsiniz. Eğer ki int ise yazdır değilse atla bir sonraki # karakterini bul şeklinde.
 
Phyton hakkında benim de bilgim yok. "#" karakterine kadar karakter karakter döngüyle aratın. Hangi elemana denk geliyorsa o elemandan itibaren yazdırın.
 
"urlopen" dan dolayı python2 kodudur.
Python:
from urllib import urlopen

nums = []
response = urlopen("http://adres") 
lines = response.readlines()
for line in lines:
   if '#' in line:
       parts = line.split("#")
       num = int(parts[1].replace('\n', ''))
       nums.append(num);
print(nums)
 
Çözüm
Python 3 ise "re" modulu ile kolayca yapilabilir, yapman gereken her satirda #'a kadar olan kismi regular expression seklinde yazip 2. kisma match ve group attirmak.
 
python 2.7 kullandığımdan dolayı olmamış olabilir zaten sorunu çözdüm yardımlarınız için teşekkür ederim.
Merak edenler için .replace ile hallettim.
 
Son düzenleme:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı