در حال بارگذاری...

کتابخانه استاندارد پایتون

کتابخانه استاندارد پایتون مجموعه‌ای از ماژول‌ها و بسته‌های آماده است که همراه با زبان پایتون ارائه می‌شوند و ابزارهای لازم برای توسعه برنامه‌های قدرتمند و کارآمد بک‌اند را فراهم می‌کنند. این کتابخانه شامل ماژول‌هایی برای مدیریت فایل و دایرکتوری، پردازش داده، شبکه، اتوماسیون سیستم، تحلیل متن و بسیاری وظایف رایج دیگر است. استفاده از آن باعث کاهش وابستگی به کتابخانه‌های خارجی، افزایش قابلیت حمل و پایداری برنامه و تسهیل توسعه سریع می‌شود. مفاهیم کلیدی شامل ماژول‌ها (واحدهای حاوی توابع مشخص)، بسته‌ها (گروه ماژول‌ها)، سینتکس پایتون، ساختار داده‌های داخلی مانند لیست، دیکشنری و مجموعه‌ها، الگوریتم‌های بهینه و اصول برنامه‌نویسی شیءگرا هستند. با استفاده از این کتابخانه، خواننده یاد می‌گیرد چگونه ماژول‌ها را ترکیب کرده، خطاها را مدیریت کند، عملکرد را بهینه‌سازی نماید و راه‌حل‌های پیچیده بک‌اند را ساختاربندی و نگهداری کند، که در نهایت به ایجاد برنامه‌های مقیاس‌پذیر و قابل اعتماد کمک می‌کند.

یک مثال عملی تحلیل فایل‌های لاگ سرور برای شناسایی و شمارش خطاها است. در این مثال از ماژول os برای عملیات روی فایل‌ها، datetime برای ثبت زمان، re برای جستجوی مبتنی بر عبارت منظم، collections.Counter برای شمارش خطاها و json برای ذخیره‌سازی نتایج استفاده شده است. این مثال نشان می‌دهد که چگونه می‌توان با ترکیب چند ماژول یک راه‌حل ماژولار و قابل نگهداری ایجاد کرد. هر ماژول مسئولیت مشخص خود را دارد و کد خوانا، ساختاریافته و کارآمد باقی می‌ماند. این روش به صورت مستقیم در مانیتورینگ سرور، تحلیل خودکار لاگ‌ها و ایجاد گزارش‌ها یا بصری‌سازی داده‌ها قابل استفاده است.

Example

python
PYTHON Code
import os
import datetime
import re
import json
from collections import Counter
from math import ceil

log_file = "server.log"
backup_file = f"backup_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.log"

try:
with open(log_file, 'r') as f:
lines = f.readlines()

error_lines = [line for line in lines if re.search(r'ERROR', line)]
error_count = Counter([line.split()[1] for line in error_lines])

with open("error_summary.json", 'w') as f:
json.dump(error_count, f, indent=4)

os.rename(log_file, backup_file)
backups_needed = ceil(len(lines) / 1000)
print(f"تعداد نسخه پشتیبان مورد نیاز: {backups_needed}")

except FileNotFoundError as e:
print(f"فایل پیدا نشد: {e}")
except Exception as e:
print(f"خطای غیرمنتظره: {e}")

📊 Comprehensive Reference

Module Function Description Syntax Example Notes
os rename تغییر نام فایل os.rename(src, dst) os.rename("old.txt", "new\.txt") مدیریت فایل
sys exit خروج از مفسر sys.exit(\[status]) sys.exit(1) بستن برنامه
math ceil گرد کردن به بالا math.ceil(x) math.ceil(3.4) عملیات ریاضی
math sqrt جذر گرفتن math.sqrt(x) math.sqrt(16) عملیات ریاضی
datetime now زمان جاری datetime.datetime.now() datetime.datetime.now() مدیریت زمان
datetime strftime فرمت‌دهی تاریخ datetime.strftime(format) datetime.datetime.now().strftime("%Y-%m-%d") فرمت‌دهی تاریخ
re search جستجوی Regex re.search(pattern, string) re.search(r"ERROR", "log") تحلیل متن
re sub جایگزینی Regex re.sub(pattern, repl, string) re.sub(r"\d+", "", "abc123") پاکسازی داده
json dump نوشتن JSON json.dump(obj, fp) json.dump(data, f) سریال‌سازی
json load خواندن JSON json.load(fp) data=json.load(f) دی‌سریال‌سازی
collections Counter شمارش عناصر collections.Counter(iterable) Counter(\["a","b","a"]) تحلیل داده
itertools chain ادغام Iterables itertools.chain(*iterables) list(chain(\[1,2],\[3,4])) تکرار داده
functools reduce کاهش ترتیبی functools.reduce(func, seq) reduce(lambda x,y:x+y,\[1,2,3]) برنامه‌نویسی تابعی
random randint عدد تصادفی random.randint(a,b) random.randint(1,10) شبیه‌سازی
heapq heappush افزودن به Heap heapq.heappush(heap,item) heappush(heap,5) صف اولویت
heapq heappop خروج عنصر کوچک heapq.heappop(heap) heappop(heap) صف اولویت
threading Thread ایجاد Thread threading.Thread(target=func) threading.Thread(target=my_func) چندنخی
subprocess run اجرای دستور خارجی subprocess.run(args) subprocess.run(\["ls","-l"]) تماس سیستم
time sleep توقف time.sleep(seconds) time.sleep(2) کنترل زمان
pathlib Path مدیریت مسیر Path("file.txt") Path("data.txt").exists() مدیریت فایل
uuid uuid4 شناسه یکتا uuid.uuid4() uuid.uuid4() شناسه یکتا
base64 b64encode کدگذاری Base64 base64.b64encode(data) base64.b64encode(b"data") کدگذاری
hashlib sha256 هش SHA-256 hashlib.sha256(data) hashlib.sha256(b"data").hexdigest() امنیت
copy deepcopy کپی عمیق copy.deepcopy(obj) copy.deepcopy(mylist) اجتناب از ارجاع
gzip open باز کردن فایل Gzip gzip.open(filename) gzip.open("file.gz") فشرده‌سازی
zipfile ZipFile آرشیو ZIP zipfile.ZipFile(file) with ZipFile("a.zip") as z: pass فشرده‌سازی
configparser ConfigParser خواندن فایل تنظیمات configparser.ConfigParser() config.read("config.ini") پیکربندی
email message_from_string تجزیه ایمیل email.message_from_string(string) msg=email.message_from_string(raw) ایمیل
urllib request.urlopen باز کردن URL urllib.request.urlopen(url) urllib.request.urlopen("[http://example.com") درخواست](http://example.com%22%29
socket socket سوکت شبکه socket.socket() s=socket.socket() شبکه
logging basicConfig پیکربندی لاگ logging.basicConfig(level) logging.basicConfig(level=logging.INFO) ثبت رخداد
argparse ArgumentParser آرگومان CLI argparse.ArgumentParser() parser=argparse.ArgumentParser() خط فرمان
shutil copy کپی فایل shutil.copy(src,dst) shutil.copy("a.txt","b.txt") مدیریت فایل
pprint pprint چاپ زیبا pprint.pprint(obj) pprint.pprint(data) نمایش داده
statistics mean میانگین statistics.mean(data) statistics.mean(\[1,2,3]) آمار
statistics median میانه statistics.median(data) statistics.median(\[1,2,3]) آمار
queue Queue صف ایمن برای Thread queue.Queue() q=queue.Queue() چندنخی
enum Enum ایجاد Enum class Color(Enum): RED=1 Color.RED ثابت‌ها
typing List نوع‌دهی from typing import List def f(x:List): هشدار نوع
decimal Decimal عدد اعشاری دقیق decimal.Decimal("0.1") Decimal("0.1") دقت عدد
fractions Fraction کسر دقیق fractions.Fraction(a,b) Fraction(1,3) محاسبات دقیق
statistics stdev انحراف معیار statistics.stdev(data) statistics.stdev(\[1,2,3]) آمار
bisect insort درج مرتب bisect.insort(list,item) bisect.insort(a,5) مرتب‌سازی
xml etree.ElementTree تجزیه XML ET.parse(file) ET.parse("file.xml") داده ساختاری
pickle dump سریال‌سازی باینری pickle.dump(obj,fp) pickle.dump(obj,f) ذخیره‌سازی
pickle load دی‌سریال‌سازی pickle.load(fp) obj=pickle.load(f) بازیابی
shelve open دیکشنری پایدار shelve.open(file) db=shelve.open("db") ذخیره‌سازی
tokenize generate_tokens توکنیزاسیون tokenize.generate_tokens(readline) tokens=list(tokenize.generate_tokens(f.readline)) تحلیل سینتکس
pdb set_trace نقطه توقف pdb.set_trace() pdb.set_trace() دیباگ
inspect getmembers اعضای شیء inspect.getmembers(obj) inspect.getmembers(obj) بازتاب
socketserver TCPServer سرور TCP socketserver.TCPServer((host,port),handler) TCPServer(("0.0.0.0",8000),Handler) سرور سفارشی
csv reader خواندن CSV csv.reader(file) csv.reader(f) داده جدولی
csv writer نوشتن CSV csv.writer(file) csv.writer(f) داده جدولی
tarfile open فایل TAR tarfile.open(file) tarfile.open("archive.tar") آرشیو
wave open فایل WAV wave.open(file) wave.open("audio.wav") صوت
audioop add عملیات صوتی audioop.add(fragment1,fragment2,2) audioop.add(b1,b2,2) صوت
gettext gettext ترجمه gettext.gettext("text") _("سلام") بین‌المللی‌سازی
xmlrpc ServerProxy کلاینت XML-RPC xmlrpc.client.ServerProxy(url) ServerProxy("[http://localhost:8000") RPC](http://localhost:8000%22%29
asyncio run اجرای Coroutine asyncio.run(coro) asyncio.run(main()) وظایف ناهمزمان
contextlib contextmanager Context Manager @contextmanager @contextmanager def cm(): yield مدیریت منابع

🧠 دانش خود را بیازمایید

آماده شروع

Test Your Knowledge

درک خود از کتابخانه استاندارد پایتون را آزمایش کنید

3
سوالات
🎯
70%
برای قبولی
♾️
زمان
🔄
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود