الگوریتم اول

لطفا صبر کنید...

کار با داده‌ها و فایل‌ها در پایتون

در پایتون، کار با داده‌ها و فایل‌ها بخش بسیار مهمی از برنامه‌نویسی است. این زبان امکانات گسترده‌ای برای خواندن، نوشتن، و مدیریت فایل‌ها به‌ویژه فایل‌های متنی و باینری فراهم کرده است. در این بخش به بررسی روش‌های مختلف کار با داده‌ها و فایل‌ها می‌پردازیم.

۱. باز کردن و بستن فایل‌ها

برای کار با فایل‌ها در پایتون ابتدا باید فایل را باز کنیم. برای این کار از تابع open() استفاده می‌کنیم که دو پارامتر اصلی دارد: نام فایل و حالت باز کردن آن (مثلاً خواندن، نوشتن و غیره).

سینتکس:

file = open("filename", "mode")

حالات مختلف برای پارامتر mode عبارتند از:

  • 'r': باز کردن فایل به‌صورت خواندنی (پیش‌فرض).
  • 'w': باز کردن فایل به‌صورت نوشتنی (اگر فایل وجود نداشته باشد، آن را ایجاد می‌کند).
  • 'a': باز کردن فایل به‌صورت الحاقی (اضافه کردن داده‌ها به فایل موجود).
  • 'b': حالت باینری (برای فایل‌های غیرمتنی مثل تصاویر یا صوت).
  • 'rb', 'wb': برای فایل‌های باینری.

مثال:

file = open("example.txt", "r")  # باز کردن فایل برای خواندن

برای بستن فایل‌ها باید از متد close() استفاده کنیم.

file.close()

۲. خواندن از فایل‌ها

برای خواندن داده‌ها از یک فایل می‌توان از روش‌های مختلف استفاده کرد:

  • read(): تمام محتوای فایل را می‌خواند.
  • readline(): یک خط از فایل را می‌خواند.
  • readlines(): تمامی خطوط فایل را به‌صورت یک لیست از رشته‌ها می‌خواند.

مثال:

file = open("example.txt", "r")
content = file.read()  # خواندن تمام محتویات فایل
print(content)
file.close()

اگر بخواهیم یک خط از فایل را بخوانیم:

file = open("example.txt", "r")
line = file.readline()  # خواندن یک خط از فایل
print(line)
file.close()

۳. نوشتن در فایل‌ها

برای نوشتن در فایل‌ها می‌توانیم از متدهای write() و writelines() استفاده کنیم:

  • write(): برای نوشتن یک رشته در فایل.
  • writelines(): برای نوشتن یک لیست از رشته‌ها در فایل.

مثال:

file = open("example.txt", "w")
file.write("Hello, world!\n")  # نوشتن یک رشته در فایل
file.close()

برای نوشتن چندین خط در یک فایل:

lines = ["First line\n", "Second line\n", "Third line\n"]
file = open("example.txt", "w")
file.writelines(lines)
file.close()

۴. استفاده از ساختار with

برای مدیریت باز و بسته کردن فایل‌ها به‌صورت خودکار، می‌توانیم از ساختار with استفاده کنیم. این روش به‌طور خودکار فایل را باز کرده و پس از اتمام کار، آن را می‌بندد.

مثال:

with open("example.txt", "r") as file:
    content = file.read()
    print(content)

در این حالت نیازی به فراخوانی file.close() نیست.

۵. کار با فایل‌های باینری

پایتون همچنین از فایل‌های باینری پشتیبانی می‌کند. برای خواندن یا نوشتن فایل‌های باینری باید از حالت‌های 'rb' یا 'wb' استفاده کنیم.

مثال: خواندن فایل باینری:

with open("image.jpg", "rb") as file:
    data = file.read()
    print(data)

مثال: نوشتن در فایل باینری:

with open("output.jpg", "wb") as file:
    file.write(data)

۶. مدیریت فایل‌های CSV

پایتون دارای کتابخانه csv است که برای خواندن و نوشتن فایل‌های CSV (Comma Separated Values) بسیار مفید است. این فرمت معمولاً برای ذخیره و انتقال داده‌های جدولی استفاده می‌شود.

خواندن فایل CSV:

import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

نوشتن در فایل CSV:

import 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:

import json

with open("data.json", "r") as file:
    data = json.load(file)
    print(data)

نوشتن در فایل JSON:

import json

data = {"name": "Alice", "age": 25}

with open("output.json", "w") as file:
    json.dump(data, file)

۸. مدیریت فایل‌های پیکلی (Pickle)

کتابخانه pickle برای سریال‌سازی (Serializing) و ذخیره‌سازی داده‌ها به‌صورت باینری استفاده می‌شود.

ذخیره‌سازی داده با Pickle:

import pickle

data = {"name": "Alice", "age": 25}

with open("data.pkl", "wb") as file:
    pickle.dump(data, file)

خواندن داده از فایل Pickle:

import pickle

with open("data.pkl", "rb") as file:
    data = pickle.load(file)
    print(data)

۹. دسترسی به مسیر فایل‌ها

برای مدیریت مسیر فایل‌ها در پایتون، می‌توانیم از کتابخانه os یا pathlib استفاده کنیم.

استفاده از os:

import os

# گرفتن مسیر فعلی
current_directory = os.getcwd()
print(current_directory)

# تغییر مسیر
os.chdir("/path/to/directory")

استفاده از pathlib:

from pathlib import Path

# گرفتن مسیر فعلی
current_directory = Path.cwd()
print(current_directory)

# ایجاد یک فایل جدید
file_path = current_directory / "newfile.txt"

۱۰. جمع‌بندی

کار با داده‌ها و فایل‌ها در پایتون امری ضروری در برنامه‌نویسی است. پایتون امکانات زیادی برای کار با فایل‌های متنی و باینری، CSV، JSON، و Pickle فراهم کرده است. با استفاده از ابزارهای مناسب، می‌توانیم به راحتی داده‌ها را از فایل‌ها بخوانیم، آن‌ها را تغییر دهیم و دوباره ذخیره کنیم. همچنین استفاده از ساختار with برای مدیریت خودکار فایل‌ها و جلوگیری از فراموشی بستن فایل‌ها توصیه می‌شود.