You are currently viewing TXT กับ CSV ต่างกันอย่างไร

TXT กับ CSV ต่างกันอย่างไร

TXT กับ CSV ต่างกันอย่างไร ทำไมถึงนามสกุลไม่เหมือนกัน ทั้งที่เป็นไฟล์ข้อความ

โดยทั่วไป เรามักจะไปเกี่ยวข้องกับไฟล์ TXT หรือ CSV กันบ้างเป็นปกติ ทั้งสองประเภทนี้ เกือบจะไม่แตกต่างกัน แต่ก็ยังมีอะไรบางอย่างที่ไม่เหมือนกัน

จะเรียกว่าเป็นพี่น้องคลานตามกันมาก็คงจะได้เหมือนกัน

ลองทดสอบง่าย ๆ DataRevol.com ส่งข้อมูลเดียวกันจาก Excel ออกมาเป็น .csv กับ .txt โดยทั่วไปไม่มีอะไรแตกต่างกัน แม้แต่ขนาดไฟล์ ดังนั้น โดยความเห็นส่วนตัวก็แทบไม่มีอะไรต่างกัน แต่ เราจะเห็นว่า ไฟล์ CSV ใช้รูปแบบเฉพาะในการจัดเก็บข้อมูลแบบตาราง (เช่นจุลภาค หรือ คอมมา) ในขณะที่ไฟล์ TXT (ข้อความล้วน) เป็นเพียงลำดับของอักขระที่ไม่มีรูปแบบเฉพาะใด ๆ

TXT กับ CSV File

TXT File

ไฟล์ TXT (ไฟล์เท็กซ์ – text file หรือ ไฟล์ข้อความ) นามสกุลคือ .txt เป็นนามสกุลไฟล์ที่ใช้สำหรับไฟล์ที่มีข้อมูลข้อความล้วน (รวมทั้งตัวอักษร ตัวเลข และสัญลักษณ์) แต่ไม่ได้มีการเจาะจงถึงรูปแบบหรือโครงสร้าง สามารถอ่านได้โดยโปรแกรมแก้ไขข้อความหรือโปรแกรมประมวลผล

ในระบบปฏิบัติการส่วนใหญ่ ไฟล์ข้อความ หมายถึงรูปแบบไฟล์ที่มีเฉพาะอักขระธรรมดา ไม่ได้จัดรูปแบบ (เช่น ไม่มีตัวหนาหรือตัวเอียง) ไฟล์ดังกล่าวสามารถดูและแก้ไขได้บนเทอร์มินัลข้อความหรือในโปรแกรมแก้ไขข้อความธรรมดา และมักจะระบุการเข้ารหัสที่แตกต่างกันได้ อย่างเช่น ถ้าท่านเคย save as ใน Excel ท่านจะเห็นไฟล์ที่เป็น Text หลายประเภท เช่น

Text (Tab-delimited) ไฟล์ข้อความที่คั่นด้วยแท็บ สำหรับใช้ในระบบปฏิบัติการ Microsoft Windows

Text (Macintosh) ไฟล์ข้อความที่คั่นด้วยแท็บสำหรับใช้บนระบบปฏิบัติการ Macintosh

Text (MS-DOS) ไฟล์ข้อความที่คั่นด้วยแท็บสำหรับใช้ในระบบปฏิบัติการ MS-DOS

Unicode Text ข้อความ Unicode ซึ่งเป็นมาตรฐานการเข้ารหัสอักขระที่พัฒนาโดย Unicode Consortium

ตัวอย่างที่ยกมานี่จะเป็นไฟล์ข้อความเหมือนกัน เพียงแต่จะมีการปรับแต่งอักขระของคั่น ตัวแบ่งบรรทัด และอักขระอื่น ๆ เพื่อให้ออกมาถูกต้อง

CSV File

ส่วน ไฟล์ CSV (ไฟล์ซีเอสวี – csv file หรือ comma-separated values – ค่าที่คั่นด้วยเครื่องหมายจุลภาค)  นามสกุลคือ .csv

ถ้าดูที่ชื่อไฟล์ ก็คือไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค โดยเนื้อแท้แล้วก็เป็นไฟล์ข้อความที่ใช้ตัวคั่น ซึ่งในที่นี้คือ เครื่องหมายจุลภาค (comma) เพื่อแยกค่าต่างๆ แต่ละบรรทัดของไฟล์เป็นโครงสร้างข้อมูล แต่ละเร็กคอร์ด (หรือ ระเบียน หรือ แถว) ประกอบด้วยฟิลด์ (หรือ สดมป์ หรือ เขตข้อมูล หรือ คอลัมน์) อย่างน้อยหนึ่งฟิลด์ คั่นด้วยเครื่องหมายจุลภาค การใช้เครื่องหมายจุลภาคเป็นตัวคั่นฟิลด์เป็นที่มาของชื่อสำหรับรูปแบบไฟล์นี้ โดยทั่วไปแล้ว ไฟล์ CSV จะเก็บข้อมูลแบบตาราง (ตัวเลขและข้อความ) ในรูปแบบข้อความล้วน ซึ่งในกรณีนี้ แต่ละบรรทัดจะมีจำนวนฟิลด์เท่ากัน

แต่ก็มีปัญหาอยู่บ้างเหมือนกัน เช่นถ้ากำหนดการแยกฟิลด์ด้วยเครื่องหมายจุลภาค แต่กลับปรากฎว่ามีเครื่องหมายจุลภาคในข้อมูล เช่น เครื่องหมายจุลภาคคั่นจำนวนตัวเลข 1,000 หรือ 10,000,000 จะทำให้โดนแยกข้อมูลเป็นคนละฟิลด์กัน

ไฟล์ CSV นี้ ถึงชื่อจะเป็น comma-separated values – คั่นด้วยเครื่องหมายจุลภาค แต่จะใช้เครื่องหมายอื่นเป็นตัวคั่นได้เช่นกัน จะเป็น อัฒภาค หรือ ช่องว่าง หรือ อะไรก็ตาม เช่น ถ้าจำเป็นต้องใช้ จุลภาคในข้อมูล เช่น ค่า 1,000 เราอาจจะแก้ปัญหาด้วยการใช้เครื่องหมายอื่นเป็นตัวคั่นฟิลด์แทน แต่ต้องมั่นใจว่าเครื่องหมายหรืออักขระนั้น ไม่ใช่ส่วนหนึ่งของข้อมูลที่มี

CSV เป็นหนึ่งในรูปแบบไฟล์ที่นิยมใช้ในการแลกเปลี่ยนข้อมูลทั่วไป ที่เป็นข้อมูลแบบตาราง เพราะถ้าใช้ไฟล์ดั้งเดิม อาจจะย้ายถ่ายเทข้อมูลข้ามแพลตฟอร์มหรือ แอปพลิเคชัน / ซอฟต์แวร์ ไม่ได้ ตัวอย่างเช่น ผู้ใช้อาจต้องถ่ายโอนข้อมูลจากโปรแกรมฐานข้อมูลที่จัดเก็บข้อมูลในรูปแบบที่เป็นกรรมสิทธิ์เฉพาะ ไปยังสเปรดชีตที่ใช้รูปแบบอื่นโดยสิ้นเชิง โปรแกรมฐานข้อมูลส่วนใหญ่สามารถส่งออกข้อมูลเป็น CSV และไฟล์ CSV ที่ส่งออกสามารถนำเข้าโดยโปรแกรมสเปรดชีตได้

ถ้าจะสรุป CSV จะมีลักษณะดังนี้

เป็นข้อความล้วน

ประกอบด้วยระเบียน (หรือ record) โดยทั่วไปหนึ่งระเบียนต่อบรรทัด

โดยระเบียนจะถูกแบ่งออกเป็นฟิลด์ (field – เขตข้อมูล หรือ คอลัมน์) โดยคั่นด้วยตัวคั่น (โดยปกติจะเป็นอักขระตัวเดียว เช่น เครื่องหมายจุลภาค เครื่องหมายอัฒภาค หรือแท็บ บางครั้งตัวคั่นอาจมีช่องว่างเพิ่มเติม)

โดยทุกระเบียนมีลำดับของฟิลด์เหมือนกัน

เราจะใช้อะไร?

ในการทำงานจริง เราอาจจะไม่ได้ใช้เครื่องหมายจุลภาคเป็นตัวคั่น อาจจะใช้ ใช้ช่องว่าง แท็บ หรืออักขระอื่นๆ เป็นตัวคั่น จะมีแถวส่วนหัวที่ระบุชื่อคอลัมน์หรือไม่มีก็ได้

อย่างไรก็ตาม เราสามารถจัดเก็บ TXT โดยที่ใช้เครื่องหมายจุลภาคหรือว่าตัวคั่นอื่น ๆ ก็ได้เช่นเดียวกัน  เวลาเราดึงข้อมูลโดยใช้ python อ่านค่า ก็ใช้ read_csv เหมือนกัน ไฟล์ทั้งสองประเภทนี้ ทดแทนกันได้แทบจะสมบูรณ์

ดังนั้น ในการทำงานโดยทั่วไป เราจะพบข้อมูลที่มีทั้งเป็น txt และ และ csv ซึ่ง ถ้าจะหากว่ารูปแบบไฟล์ใดดีกว่า ก็คงขึ้นอยู่กับการใช้งานและข้อกำหนดเฉพาะ

ไฟล์ CSV มักใช้เพื่อจัดเก็บและแลกเปลี่ยนข้อมูลแบบตารางระหว่างระบบซอฟต์แวร์และแพลตฟอร์มต่างๆ เนื่องจากสามารถนำเข้าและส่งออกได้อย่างง่ายดายจากแอปพลิเคชันหลายประเภท เช่น โปรแกรมสเปรดชีตหรือฐานข้อมูล ไฟล์ CSV ยังสามารถอ่านและจัดการได้อย่างง่ายดายโดยใช้ภาษาโปรแกรมเช่น Python ทำให้เป็นตัวเลือกยอดนิยมสำหรับการวิเคราะห์ข้อมูลและงานประมวลผล

ในทางกลับกัน ไฟล์ TXT มักจะใช้สำหรับจัดเก็บข้อมูลข้อความธรรมดา เช่น ไฟล์บันทึกหรือซอร์สโค้ด และบางครั้งก็เป็นที่นิยมสำหรับความเรียบง่ายและความยืดหยุ่น ไฟล์ TXT สามารถเปิดและแก้ไขได้ด้วยโปรแกรมแก้ไขข้อความใด ๆ และสามารถอ่านและประมวลผลได้อย่างง่ายดายโดยใช้ภาษาโปรแกรม

โดยสรุป ไฟล์ CSV มักจะดีกว่าสำหรับการจัดเก็บข้อมูลที่มีโครงสร้างในรูปแบบตาราง ในขณะที่ไฟล์ TXT นั้นดีกว่าสำหรับการจัดเก็บข้อมูลที่ไม่มีโครงสร้างหรือข้อความล้วน การเลือกรูปแบบไฟล์ที่จะใช้ขึ้นอยู่กับความต้องการเฉพาะของโครงการและประเภทของข้อมูลที่จัดเก็บ


Discover more from Data Revol

Subscribe to get the latest posts sent to your email.