Büyük bir CSV dosyası birden çok dosyaya nasıl bölünür

Büyük bir CSV dosyasını bölmek için önce her parçanın ne kadar büyük olabileceğine karar ver, sonra dosyayı o kadar satırlık parçalara ayır ve başlık satırını her parçanın en üstüne tekrar yaz. Bu sayfadaki araç bunu tarayıcında yapar: dosya başına satır sayısını, eşit dosya sayısını ya da bir sütunun her değeri için ayrı dosyayı seç, tüm parçaları ZIP olarak indir.

5 dk okuma

Kısa cevap

CSV dosyası, her satırında bir kayıt olan düz metindir; bu yüzden bölmek, metni birkaç bin satırda bir kesmek kadar kolay görünür. İki ayrıntı bunu güvenilmez yapar: başlık satırı sadece en üstte bir kez vardır, yani ilk parçadan sonraki parçaların hiçbirinde sütun adı olmaz; tırnak içindeki bir değer de satır sonu içerebilir, yani körlemesine bir kesme tek bir kaydı ikiye ayırabilir. Düzgün bir CSV bölme aracı dosyayı kayıt kayıt okur, başlığı her parçaya kopyalar ve sadece tamamlanmış kayıtların arasından keser.

Aşağıdaki araçta CSV'yi sayfaya bırak, Bölme şekli ayarını Satır sayısı olarak bırak, dosya başına satır sayısını yaz ve birkaç saniye bekle. Her parça kendi İndir düğmesiyle listede görünür, Hepsini ZIP olarak indir ise hepsini birlikte kaydeder. Hiçbir şey yüklenmez: dosya tarayıcında okunur, bu da müşteri ve sipariş verilerini gizli tutar.

Burada dene: CSV bölme

Aracın tam sayfasını aç

CSV neden bölünür

Çoğu bölme işine başka bir yerdeki sınır yol açar. Online mağazaların, pazaryerlerinin, e-posta pazarlama araçlarının ve CRM'lerin içe aktarma ekranları çoğu zaman yükleme başına belli bir satır ya da megabayt sayısını kabul eder. Excel bir sayfada en fazla 1.048.576 satır gösterir ve bu sayıya varmadan çok önce yavaşlar; Google E-Tablolar'ın da tüm tablo için bir hücre sınırı var. E-posta ekleri genelde 20 ile 25 MB arasında sınırlanır.

Bazı bölme işleri ise yazılımla değil insanlarla ilgilidir: bölge müdürleri için her bölgeye bir dosya, her tedarikçiye sadece kendi ürünlerinin olduğu bir dosya ya da ekipteki herkese eşit pay düşen bir arama listesi. Bu durumlarda sabit satır sayısı yerine bir sütunun değerine göre ya da belli sayıda dosyaya bölmek gerekir.

DurumBölme şekliTipik ayar
Dosya başına 10.000 satırlık içe aktarma sınırıSatır sayısıDosya başına satır: 10000
Excel için çok büyük dosyaSatır sayısıDosya başına satır: 1000000
Dört iş arkadaşına eşit payDosya sayısıDosya sayısı: 4
Her şube, şehir ya da tedarikçi için bir dosyaSütun değeriSütun: Şube
E-posta boyut sınırını aşan ekDosya sayısıSınırın altında kalacak kadar dosya

Her parça için doğru boyutu seçmek

Platform bir satır sınırı belirtiyorsa onu doğrudan kullan ama biraz pay bırak, çünkü bazı içe aktarma ekranları başlığı da satır sayar. Sınır megabayt olarak verilmişse dosya boyutunu sınıra böl ve yukarı yuvarlayarak dosya sayısını bul, sonra her parça yaklaşık aynı boyutta olsun diye Dosya sayısı seçeneğini seç. 50 MB sınırı olan 180 MB'lık bir döküm için dört dosya gerekir.

Satır sayısı ile Dosya sayısı son parçada farklı davranır. Satır sayısı her parçayı tamamen doldurur ve kalanı son parçaya bırakır; yani dosya başına 10.000 satırla 25.500 satır, iki dolu dosya ve 5.500 satırlık bir dosya verir. Dosya sayısı ise satırları olabildiğince eşit dağıtır; aynı tablo üç dosyaya bölününce her birinde 8.500 satır olur.

Parçalar, orijinal dosyanın adını ve her parçada aynı genişlikte bir numara alır, örneğin siparisler_01.csv ile siparisler_12.csv arası. Böylece ada göre sıralandığında doğru sırada kalırlar.

Bir sütunun değerine göre bölmek

Bölme şekli altında Sütun değeri seçeneğini seç ve sütunu, dosyanın başlığından dolan listeden belirle. Araç her farklı değer için bir dosya oluşturur ve o değerin adını verir, örneğin siparisler_Ankara.csv ve siparisler_Izmir.csv. Sütunun boş olduğu satırlar adında boş geçen bir dosyada toplanır, böylece hiçbir satır kaybolmaz.

Değerler baştaki ve sondaki boşluklar atıldıktan sonra karşılaştırılır; yani Ankara ile sonunda boşluk olan Ankara aynı dosyaya düşer. Büyük ve küçük harf ise ayrı tutulur, çünkü kodlarda farklı anlamlara gelebilir. Sipariş numarası gibi 1.000'den fazla farklı değeri olan bir sütun çok fazla dosya üretir; bu yüzden araç durur ve daha az değeri olan bir sütun seçmeni ister.

Verinin bozulmaması

Dosya virgül, noktalı virgül, sekme ya da dikey çizgi kullansa da ayraç kendiliğinden bulunur; Ayraç altında başka birini seçmezsen parçalar aynı ayracı kullanır. İçinde virgül, tırnak ya da satır sonu olan tırnaklı değerler tek hücrede kalır. Değerler aynen kopyalanır; baştaki sıfırlarıyla barkodlar ve posta kodları, uzun kimlik numaraları ve tarihler değişmez.

Her CSV parçası, Excel'e çift tıklayarak açıldığında Türkçe karakterleri doğru göstermesini söyleyen bir bayt sırası işaretiyle (BOM) UTF-8 olarak kaydedilir. Orijinal dosya eski bir programla bölgesel bir Windows kodlamasında kaydedildiyse bu tanınır ve yol üzerinde UTF-8'e çevrilir. Kaydetme biçimi ayarını Excel yaparak, kalın ve sabitlenmiş başlık satırı olan, baştaki sıfırlı sütunların metin kaldığı .xlsx çalışma kitapları da alabilirsin.

Çok büyük dosyalar ve diğer yöntemler

Araç CSV dosyalarını arka planda küçük parçalar halinde okur; bu yüzden birkaç yüz bin satırlık 100 MB bir dosya normal bir dizüstü bilgisayarda saniyeler içinde bölünür ve sayfa yanıt vermeye devam eder. Sınır cihazının belleğidir: parçalar sen indirene kadar bellekte tutulur, bu yüzden birkaç gigabaytlık dosyalarda komut satırı aracı daha doğru bir seçimdir.

macOS ve Linux'ta split komutu bir dosyayı satırlara göre kesebilir, örneğin split -l 10000 veri.csv parca_. Ama başlığı tekrarlamaz ve birkaç satıra yayılan tırnaklı değerlerin ortasından keser. Excel'de satır bloklarını elle yeni çalışma kitaplarına kopyalayabilirsin; birkaç parça için olur ama yavaştır ve hata yapmak kolaydır. Power Query ya da csv modülünü kullanan kısa bir Python betiği tırnak içindeki satır sonlarını doğru işler, bunlarla rahatsan tabii.

Sık karşılaşılan sorunlar ve çözümleri

  • Parçalarda tek sütun var: dosya Excel'in beklemediği bir ayraç kullanıyor. Veri sekmesinde Metinden/CSV'den ile içe aktar ya da Kaydetme biçimi ayarını Excel yap.
  • Tırnak içindeki bir değerin kapanmadığı yazıyor: dosyanın bir yerinde, çoğu zaman bir ürün açıklamasında, tırnak işareti eksik. Dosyayı bir metin editöründe aç, satırı bul ve tırnağı düzelt.
  • Sütun listesi boş: önce dosyayı ekle, liste dosyanın ilk satırından dolar. Dosyada başlık yoksa İlk satır başlık ayarını kapat ve sütunu numarasıyla seç.
  • Çok fazla dosya: Dosya başına satır değeri küçükken büyük bir tablo binlerce dosya üretir. Daha büyük bir değer seç; araç en fazla 1.000 parçaya izin verir.

Adım adım

  1. CSV'yi ekleDosyayı araca bırak ya da Dosya seç düğmesine bas. Birkaç dosya aynı ayarlarla birlikte bölünebilir.
  2. Bölme şeklini seçBölme şekli altında Satır sayısı, Dosya sayısı ya da Sütun değeri seçeneğini seç, sayıyı yaz ya da sütunu belirle.
  3. Başlık ayarını kontrol etSütun adları her parçanın en üstünde tekrar yer alsın diye İlk satır başlık ayarını açık bırak.
  4. Parçaları indirParçaları listeden tek tek indir ya da hepsini bir seferde kaydetmek için Hepsini ZIP olarak indir düğmesine bas.

Sık sorulan sorular

CSV dosyasını başlıklarıyla birlikte birden çok dosyaya nasıl bölerim?

Başlık satırını her parçaya kopyalayan bir araç kullan, örneğin İlk satır başlık açıkken bu sayfadaki araç. Satır satır kesen basit araçlar başlığı sadece ilk dosyada bırakır.

Bir CSV dosyasında kaç satır olabilir?

CSV'nin kendisinin bir sınırı yok. Sınırlar onu açan programlardan gelir; örneğin Excel'de sayfa başına 1.048.576 satır ya da bir içe aktarma ekranının kendi üst sınırı.

CSV dosyasını Excel olmadan bölebilir miyim?

Evet. Buradaki araç Windows, Mac, Linux ya da telefondaki her güncel tarayıcıda çalışır; Excel'e ya da kurulu bir programa gerek yoktur.

Burada bölerken CSV'm yükleniyor mu?

Hayır. Dosya tarayıcında okunur ve bölünür, parçalar cihazında oluşturulur. Hiçbir şey bir sunucuya gönderilmez.

Bölme işlemi sayılarımı ya da baştaki sıfırları değiştirir mi?

Hayır. CSV parçalarında değerler olduğu gibi durur. Sadece Excel olarak kaydedersen sayılar sayı olarak saklanır, baştaki sıfırlı sütunlar yine metin kalır.

Parçaları sonradan yeniden birleştirebilir miyim?

Evet. Aynı aracın CSV birleştirme sayfasını aç, parçaları sırayla ekle ve Dosyaları birleştir düğmesine bas. Başlık bir kez yazılır, satırlar listedeki sırayla gelir.