การจัดการไฟล์เป็นส่วนสำคัญของแอปพลิเคชันเว็บ 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) สะดวกกว่า