- Katılım
- 30 Nis 2011
- Konular
- 1,324
- Mesajlar
- 5,827
- Çözüm
- 20
- Online süresi
- 6mo 6d
- Reaksiyon Skoru
- 5,737
- Altın Konu
- 235
- Başarım Puanı
- 379
- MmoLira
- 27,342
- DevLira
- 27
HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Node.js İle CSV Dosyaları Nasıl Okunur
CSV dosyaları uygun bir veri depolama biçimidir ve bunları Node.js projelerinizde yapılandırmadan ham verilere kadar her şeyi işlemek için kullanabilirsiniz. Farklı dillerde yazılmış olsalar bile iki uygulama arasında bilgi paylaşımını basitleştirebilirler. Node.js'de CSV dosyalarını okumak ve yazmak için çeşitli yöntemler kullanabilirsiniz.
Proje Kurulumu
Bu öğreticiyi takip etmek için makinenizde Node.js'nin kurulu olduğundan emin olun. Kontrol etmek için bu komutu çalıştırın:
node -v
Bir sürüm numarası döndürmelidir. Node.js kurulu değilse, bunu yapmak için bu kurulum eğitimindeki talimatları izleyin. Tercih ettiğiniz dizinde parse-csv adlı yeni bir klasör oluşturun.
mkdir parse-csv
parse-csv'ye gidin ve yeni bir dosya oluşturun. ParseCSV.js olarak adlandırın.
cd parse-csv
touch parseCSV.js
fs Modülünü Kullanma
fs dosya sisteminin kısaltması modülü, Node.js'deki dosya sistemiyle etkileşim kurmak için birkaç komut içerir.
fs dosya sisteminin kısaltması modülü, Node.js'deki dosya sistemiyle etkileşim kurmak için birkaç komut içerir.
Tüm Dosyayı Aynı Anda Okuyun
fs modülündeki readFile () ve readFileSync() komutları, Node.js'deki dosya içeriğini okumanızı sağlar. Bu komutlar arasındaki fark, readFileSync() öğesinin eşzamanlı olmasıdır; diğer JavaScript'in yürütülmesini engellerken, readFile() öğesinin eşzamansız olması veya engellememesidir. CSV dosyalarını okumak, özellikle büyük dosyalar için biraz zaman alabileceğinden, aşağıda gösterildiği gibi engelleme yapmayan readFile() komutunu kullanmak genellikle daha iyidir.
const fs = require('fs');
fs.readFile('csvdemo.csv', 'utf8', function (err, data) {
/* parse data */
});
Satır Satır Oku
readFile() çalışırken, tüm CSV dosyasını bir kerede okuduğu için bellek yoğundur. Bu, özellikle büyük CSV dosyalarıyla çalışırken bir sorundur. Bir alternatif, fs.createReadStream() komutunu kullanarak her seferinde bir satır okumaktır.
const fs = require("fs");
const readline = require("readline");
const stream = fs.createReadStream("./csvdemo.csv");
const rl = readline.createInterface({ input: stream });
let data = [];
rl.on("line", (row) => {
data.push(row.split(","));
});
rl.on("close", () => {
console.log(data);
});
Burada, okunabilir bir akış oluşturmak için CSV dosya adını fs.createReadStream() öğesine iletiyorsunuz. Akışlar, yığınlar halinde erişmenize izin vererek büyük miktarda veriyle çalışmanıza olanak tanır. Okunabilir akışı oluşturduktan sonra onu readline.createInterface() yöntemine iletin. Readline modülü, verileri bir seferde bir satır okumak için bir arayüz sağlar.
Artık her satırı okunurken veri dizisine gönderebilirsiniz. Ancak, bu kodun her satırı virgülle ayırdığını unutmayın. Bu, en temel CSV dosyasıyla çalışacak olsa da, biçim aslında adından da anlaşılacağı gibi daha karmaşıktır. CSV dosyalarını manuel olarak ayrıştırmak, özellikle verilerin kontrolü sizde değilse, sağlam bir yaklaşım değildir. Çoğu durumda bir CSV kitaplığı kullanmalısınız.
Hızlı-csv Kullanma
CSV dosyalarını güvenilir bir şekilde ayrıştırmak için, npm paketi olarak sunulan fast-csv gibi bir kitaplık kullanabilirsiniz. Yalnızca CSV dosyalarını okumayı değil, aynı zamanda biçimlendirmeyi de kolaylaştırır. Başlamak için npm'yi başlatın ve fast- csv'yi kurun.
npm init -y
npm i fast-csv
Fast-csv kullanarak CSV dosyalarını aşağıdaki gibi okuyun.
const fs = require('fs')
const csv = require('fast-csv');
const data = []
fs.createReadStream('./csvdemo.csv')
.pipe(csv.parse({ headers: true }))
.on('error', error => console.error(error))
.on('data', row => data.push(row))
.on('end', () => console.log(data));
Yukarıdaki kodda, CSV dosyasından okunabilir bir akış oluşturarak başlayın, ardından bunu pipe() kullanarak hızlı CSV'den ayrıştırma yöntemine bağlayın. Başlıklar seçeneğini csv.parse() öğesine ilettiğinizi unutmayın ve bu ilk satırı atlar. CSV dosyanızın ilk satırı başlık içermiyorsa, başlıkları false olarak ayarlayın.





