Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - การรวมข้อมูลจากหลายไฟล์เป็นไฟล์หลัก (Master File)

การจัดการไฟล์เป็นส่วนสำคัญของแอปพลิเคชันเว็บ Python มีฟังก์ชันสำหรับสร้าง, อ่าน, อัปเดต, ลบไฟล์

โหมดการเปิดไฟล์:

  • "a" - Append: เขียนต่อท้ายไฟล์
  • "w" - Write: ทับเนื้อหาเดิม

ตัวอย่าง: รวมไฟล์ข้อมูลหลายไฟล์เป็น master.txt

import os

# รายการไฟล์ในโฟลเดอร์ข้อมูล
data_dir = r'D:\python\data_files\data_files'
lis = os.listdir(data_dir)

# โฟลเดอร์และไฟล์เป้าหมาย
target_dir = r'D:\python\data_files\target_file'
out_file = os.path.join(target_dir, 'master.txt')

# ลบไฟล์เก่าถ้ามี
if os.path.exists(out_file):
    os.remove(out_file)

# เขียนหัวตาราง
with open(out_file, 'a', encoding='utf-8') as f:
    f.write('empno, ename, sal\n')

# รวมข้อมูลจากแต่ละไฟล์
for fname in lis:
    fpath = os.path.join(data_dir, fname)
    with open(fpath, 'r', encoding='utf-8') as infile:
        lines = infile.readlines()
    with open(out_file, 'a', encoding='utf-8') as outfile:
        outfile.write('\n')
        outfile.writelines(lines)

# วิธีอื่น: ใช้ pandas
import pandas as pd
df1 = pd.read_csv(r'D:\python\data_files\data_files\emp_1.txt')
df2 = pd.read_csv(r'D:\python\data_files\data_files\emp_2.txt')
df3 = pd.read_csv(r'D:\python\data_files\data_files\emp_3.txt')
result = pd.concat([df1, df2, df3])
result.to_csv(out_file, encoding='utf-8', index=False)

ข้อสังเกต

  • ใช้ with open(...) เพื่อปิดไฟล์อัตโนมัติ
  • os.path.join ทำให้ path ใช้งานได้ทุก OS
  • Pandas ใช้สำหรับข้อมูลโครงสร้าง (CSV) สะดวกกว่า