کار با دادهها و فایلها در پایتون
در پایتون، کار با دادهها و فایلها بخش بسیار مهمی از برنامهنویسی است. این زبان امکانات گستردهای برای خواندن، نوشتن، و مدیریت فایلها بهویژه فایلهای متنی و باینری فراهم کرده است. در این بخش به بررسی روشهای مختلف کار با دادهها و فایلها میپردازیم.
۱. باز کردن و بستن فایلها
برای کار با فایلها در پایتون ابتدا باید فایل را باز کنیم. برای این کار از تابع open() استفاده میکنیم که دو پارامتر اصلی دارد: نام فایل و حالت باز کردن آن (مثلاً خواندن، نوشتن و غیره).
سینتکس:
حالات مختلف برای پارامتر mode عبارتند از:
- 'r': باز کردن فایل بهصورت خواندنی (پیشفرض).
- 'w': باز کردن فایل بهصورت نوشتنی (اگر فایل وجود نداشته باشد، آن را ایجاد میکند).
- 'a': باز کردن فایل بهصورت الحاقی (اضافه کردن دادهها به فایل موجود).
- 'b': حالت باینری (برای فایلهای غیرمتنی مثل تصاویر یا صوت).
- 'rb', 'wb': برای فایلهای باینری.
مثال:
برای بستن فایلها باید از متد close() استفاده کنیم.
۲. خواندن از فایلها
برای خواندن دادهها از یک فایل میتوان از روشهای مختلف استفاده کرد:
- read(): تمام محتوای فایل را میخواند.
- readline(): یک خط از فایل را میخواند.
- readlines(): تمامی خطوط فایل را بهصورت یک لیست از رشتهها میخواند.
مثال:
content = file.read() # خواندن تمام محتویات فایل
print(content)
file.close()
اگر بخواهیم یک خط از فایل را بخوانیم:
line = file.readline() # خواندن یک خط از فایل
print(line)
file.close()
۳. نوشتن در فایلها
برای نوشتن در فایلها میتوانیم از متدهای write() و writelines() استفاده کنیم:
- write(): برای نوشتن یک رشته در فایل.
- writelines(): برای نوشتن یک لیست از رشتهها در فایل.
مثال:
file.write("Hello, world!\n") # نوشتن یک رشته در فایل
file.close()
برای نوشتن چندین خط در یک فایل:
file = open("example.txt", "w")
file.writelines(lines)
file.close()
۴. استفاده از ساختار with
برای مدیریت باز و بسته کردن فایلها بهصورت خودکار، میتوانیم از ساختار with استفاده کنیم. این روش بهطور خودکار فایل را باز کرده و پس از اتمام کار، آن را میبندد.
مثال:
content = file.read()
print(content)
در این حالت نیازی به فراخوانی file.close() نیست.
۵. کار با فایلهای باینری
پایتون همچنین از فایلهای باینری پشتیبانی میکند. برای خواندن یا نوشتن فایلهای باینری باید از حالتهای 'rb' یا 'wb' استفاده کنیم.
مثال: خواندن فایل باینری:
data = file.read()
print(data)
مثال: نوشتن در فایل باینری:
file.write(data)
۶. مدیریت فایلهای CSV
پایتون دارای کتابخانه csv است که برای خواندن و نوشتن فایلهای CSV (Comma Separated Values) بسیار مفید است. این فرمت معمولاً برای ذخیره و انتقال دادههای جدولی استفاده میشود.
خواندن فایل CSV:
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
نوشتن در فایل CSV:
data = [["Name", "Age"], ["Alice", 25], ["Bob", 30]]
with open("output.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(data)
۷. مدیریت فایلهای JSON
کتابخانه json برای کار با دادههای JSON استفاده میشود. این فرمت بهطور گسترده در برنامههای وب و تبادل دادهها استفاده میشود.
خواندن از فایل JSON:
with open("data.json", "r") as file:
data = json.load(file)
print(data)
نوشتن در فایل JSON:
data = {"name": "Alice", "age": 25}
with open("output.json", "w") as file:
json.dump(data, file)
۸. مدیریت فایلهای پیکلی (Pickle)
کتابخانه pickle برای سریالسازی (Serializing) و ذخیرهسازی دادهها بهصورت باینری استفاده میشود.
ذخیرهسازی داده با Pickle:
data = {"name": "Alice", "age": 25}
with open("data.pkl", "wb") as file:
pickle.dump(data, file)
خواندن داده از فایل Pickle:
with open("data.pkl", "rb") as file:
data = pickle.load(file)
print(data)
۹. دسترسی به مسیر فایلها
برای مدیریت مسیر فایلها در پایتون، میتوانیم از کتابخانه os یا pathlib استفاده کنیم.
استفاده از os:
# گرفتن مسیر فعلی
current_directory = os.getcwd()
print(current_directory)
# تغییر مسیر
os.chdir("/path/to/directory")
استفاده از pathlib:
# گرفتن مسیر فعلی
current_directory = Path.cwd()
print(current_directory)
# ایجاد یک فایل جدید
file_path = current_directory / "newfile.txt"
۱۰. جمعبندی
کار با دادهها و فایلها در پایتون امری ضروری در برنامهنویسی است. پایتون امکانات زیادی برای کار با فایلهای متنی و باینری، CSV، JSON، و Pickle فراهم کرده است. با استفاده از ابزارهای مناسب، میتوانیم به راحتی دادهها را از فایلها بخوانیم، آنها را تغییر دهیم و دوباره ذخیره کنیم. همچنین استفاده از ساختار with برای مدیریت خودکار فایلها و جلوگیری از فراموشی بستن فایلها توصیه میشود.
