Pisahin TLD Domain Pakai Python Biar Nggak Ngehang di Notepad++
Kalau alldomain.txt kebanyakan, mending pisahin domain per TLD pakai Python. Sekalian hapus yang sudah dipindah dari file sumber.
Masalahnya simpel: file kebanyakan, Notepad++ mulai ngeluh
Gue punya file alldomain.txt isinya kumpulan domain. Awalnya pengen misahin berdasarkan TLD kayak .com, .net, .org, dan .id pakai mark di Notepad++. Tapi pas datanya udah banyak, aplikasi mulai ngehang.
Jadi ya, daripada maksa editor teks, mending pindah ke Python. Jauh lebih enak buat kerja model begini.
Solusinya: baca file, filter TLD, simpan ke file baru
Intinya script ini bakal:
- baca
alldomain.txt - pisahin domain sesuai TLD yang lu tentuin
- simpan ke file terpisah seperti
domain_com.txt,domain_net.txt, dan seterusnya - hapus domain yang sudah dipindah dari file sumber
Jadi file sumber cuma nyisain domain yang belum masuk kategori mana pun.
Script Python
from collections import defaultdict
input_file = 'alldomain.txt'
# TLD yang mau dipisah
# Tambahin sendiri kalau perlu
simple_tlds = ['.com', '.net', '.org', '.dev', '.ai', '.io', '.stream', '.cloud', '.co']
# Variasi .id biar ikut ketangkep
id_variations = ['.id', '.co.id', '.net.id', '.my.id', '.or.id', '.ac.id', '.sch.id', '.go.id', '.mil.id']
with open(input_file, 'r', encoding='utf-8', errors='ignore') as f:
domains = [line.strip() for line in f if line.strip()]
domain_groups = defaultdict(list)
remaining_domains = []
for domain in domains:
matched = False
lower_domain = domain.lower()
# Prioritas untuk variasi .id
for vid in id_variations:
if lower_domain.endswith(vid):
domain_groups['.id'].append(domain)
matched = True
break
if not matched:
for tld in simple_tlds:
if lower_domain.endswith(tld):
domain_groups[tld].append(domain)
matched = True
break
if not matched:
remaining_domains.append(domain)
for tld, dom_list in domain_groups.items():
clean_tld = tld.lstrip('.').replace('.', '_')
output_file = f'domain_{clean_tld}.txt'
with open(output_file, 'w', encoding='utf-8') as f:
for dom in sorted(dom_list):
f.write(dom + '\n')
print(f'✅ {len(dom_list)} domain disimpan ke {output_file}')
with open(input_file, 'w', encoding='utf-8') as f:
for dom in sorted(remaining_domains):
f.write(dom + '\n')
print(f'Sisa domain yang tidak masuk kategori: {len(remaining_domains)}')
print('Proses selesai.')Cara pakai
- Simpan script ini sebagai
separate_domains.py - Taruh
alldomain.txtdi folder yang sama - Jalankan command ini
python3 separate_domains.pyKalau mau nambah TLD lain
Tinggal edit list ini:
simple_tlds = ['.com', '.net', '.org', '.dev', '.ai', '.io', '.stream', '.cloud', '.co']Misalnya mau nambah .xyz, .app, atau .site, tinggal masukin aja ke list.
Catatan kecil biar nggak kejebak
- Pakai
endswith()supaya matching-nya lebih aman. - Variasi
.idgue pisahin khusus karena bentuknya banyak. - File output otomatis disortir biar enak dicek lagi.
- Kalau datanya gede banget, Python tetap jauh lebih waras daripada ngandelin editor teks.
Penutup
Kalau lu sering ngurus file domain besar, workflow kayak gini lumayan ngirit waktu. Sekali jalan, domain udah kepisah rapi, file sumber juga langsung bersih dari yang udah dipindah.
Kalau mau, script ini masih bisa gue bantu upgrade lagi buat: hapus duplikat, validasi domain, bikin folder output otomatis, atau nambah log yang lebih detail.
Tags: Catatan Teknis, Python, Domain, Notepad++, CLI