ফাইল হ্যান্ডলিং (File handling) যেকোনো ওয়েব অ্যাপ্লিকেশনের গুরুত্বপূর্ণ অংশ। পাইথনে ফাইল তৈরি, পড়া, আপডেট এবং ডিলিট করার জন্য বিভিন্ন ফাংশন আছে।
ফাইল মোড
"a"- Append: ফাইলের শেষে লিখে (অপেন্ড)"w"- Write: ফাইলের পুরনো কন্টেন্ট ওভাররাইট (overwrite) করে লিখে
উদাহরণ: একাধিক ডেটা ফাইল থেকে মাস্টার ফাইল তৈরি
import os
# ডিরেক্টরি থেকে ফাইল লিস্ট করা
lis = os.listdir('D:\\python\\data_files\\data_files')
print(lis)
# আউটপুট ফাইল পাথ
file_dir = 'D:\\python\\data_files\\data_files'
out_file = r'D:\\python\\data_files\\target_file\\master.txt'
# পুরনো মাস্টার ফাইল থাকলে ডিলিট করে নতুন তৈরি
try:
tgt = os.listdir('D:\\python\\data_files\\target_file')
if len(tgt) > 0:
os.remove('D:\\python\\data_files\\target_file\\master.txt')
open(out_file, 'a').close()
except:
head = open(out_file, 'a+')
head.write('empno, ename, sal\n')
head.close()
# প্রতিটি ফাইল পড়ে মাস্টার ফাইলে লিখা
for line1 in lis:
f_dir = file_dir + '\\' + line1
in_file = open(f_dir, 'r+')
w = open(out_file, 'a+')
d = in_file.readlines()
w.write("\n")
for line2 in d:
print(line2)
w.write(line2)
w.close()
in_file.close()
# প্যান্ডাস (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')
frames = [df1, df2, df3]
result = pd.concat(frames)
result.to_csv(r'D:\python\data_files\target_file\master.txt', encoding='utf-8', index=False)
ব্যবহারিক টিপস
- বড় ফাইল হলে
pandasব্যবহার করা দ্রুত ও সুবিধাজনক। with open(...) as f:কনটেক্সট ম্যানেজার ব্যবহার করলে ফাইল অটো ক্লোজ হয়।- পাথ (path) লেখার সময় raw string (r'...') বা ডাবল ব্যাকস্ল্যাশ (\\) ব্যবহার করুন।