trending.txt denilen başka bir dosyaya göndermek istiyorum;
from collections import Counter
counts = Counter()
with open("/Users/Adnan/Desktop/twitter_data.txt") as data:
for tag in data:
for line in data:
for part in line.capitalize().split():
if "#" in part:
counts[part] += 1
with open('trending.txt') as trending:
for hashtag, count in counts.most_common():
print(hashtag, count, sep=',', file=trending)
Counter.most_common()
method en sık olandan en az olana, sıralanmış sırada (key, count)
değerleri üretir: o kutudan istediğiniz işlevselliği içeren bir ihtisas sözlüğüdür. Bir tamsayı verilirse tarafından döndürülen kayıtların sayısını sınırlamak edebilirsiniz: for tag in data
sadece kez yineleme olacak
with open('trending.txt') as trending:
# The 10 most popular hashtags
for hashtag, count in counts.most_common(10):
print(hashtag, count, sep=',', file=trending)
Not; İlk satırı okur, bundan sonra for line in data:
dosyanın geri kalanını işler. Bunun yerine o döngünün next(data, None)
kullanabilirsiniz:
import csv
with open('trending.txt') as trending:
writer = csv.csvwriter(trending)
writer.writerows(counts.most_common())
yukarıda: Eğer (virgülle ayrılmış verileri) CSV dosyası üretmek çalışıyorsanız
with open("/Users/Adnan/Desktop/twitter_data.txt") as data:
tag = next(data, None) # read the first line
for line in data:
for part in line.capitalize().split():
if "#" in part:
counts[part] += 1
Son olarak, csv
module kullanmak tüm sayıları, sıralanmış sırayla CSV dosyasına yazar.
@ Smac89: Bu, ters sırayla * değer * ile sıralanıyor. Üstelik bu bir sayım işleminden oluşur .. –