Skip to content

File Utilities Library — اردو/فائلیں

The اردو/فائلیں library provides Urdu-named classes and functions for working with ZIP archives and Excel workbooks.

اردو: اردو/فائلیں لائبریری زپ (ZIP) آرکائیو اور ایکسل (Excel) ورک بک کے ساتھ کام کرنے کے لیے اردو نام کے کلاس اور فنکشن فراہم کرتی ہے۔

Import:

درآمد { زپ_فائل, زپ_بناؤ, زپ_نکالو, زپ_فہرست, ایکسل_کتاب, ایکسل_پڑھو, ایکسل_لکھو } سے "اردو/فائلیں"

Table of Contents — فہرست مضامین

  1. ZIP Files — زپ
  2. زپ_فائل class
  3. Standalone ZIP functions
  4. Excel — ایکسل
  5. ایکسل_ورق — Worksheet
  6. ایکسل_کتاب — Workbook
  7. Standalone Excel functions
  8. Examples

ZIP Files — زپ

اردو: زپ فائل (ZIP file) ایک سکڑی ہوئی آرکائیو فائل ہے جس میں متعدد فائلیں محفوظ کی جا سکتی ہیں۔

زپ_فائل class

The زپ_فائل class wraps Python's zipfile.ZipFile. Open an archive for reading, writing, or appending.

اردو: زپ_فائل کلاس سے آرکائیو پڑھنے، لکھنے یا اضافہ کرنے کے لیے کھولیں۔

متغیر z = نیا زپ_فائل("آرکائیو.zip", "r")

Mode strings:

Mode Description
"r" Open existing archive for reading
"w" Create new archive (overwrites if exists)
"a" Append to existing archive

Methods — طریقے

Method Returns Description
.فہرست() list[str] Names of all files inside the ZIP
.معلومات(نام) object Info about one file: {نام, اصل_سائز, سکڑا_سائز, تاریخ}
.پڑھو(نام) bytes Read file as raw bytes
.متن_پڑھو(نام, انکوڈنگ="utf-8") string Read file as a text string
.نکالو(نام, منزل=".") string Extract one file; returns extraction path
.سب_نکالو(منزل=".") list[str] Extract all files; returns list of paths
.شامل(فائل_راستہ, zip_نام=null) Add a file from disk (optional in-ZIP name)
.متن_شامل(zip_نام, مواد) Add a string as a file inside the ZIP
.بائٹس_شامل(zip_نام, مواد) Add raw bytes as a file inside the ZIP
.بند() Close the archive

Standalone ZIP functions — اکیلے زپ فنکشن

Function Returns Description
زپ_بناؤ(zip_راستہ, فائلیں) string Create a ZIP; فائلیں is [[src, dst], ...]
زپ_نکالو(zip_راستہ, منزل=".") list[str] Extract entire ZIP; returns extracted paths
زپ_فہرست(zip_راستہ) list[str] List file names without extracting

Excel — ایکسل

Backed by openpyxl. Supports .xlsx files only.

اردو: ایکسل (Excel) ورک بک صرف .xlsx فارمیٹ کو سپورٹ کرتی ہے۔ اس کا انجن openpyxl ہے۔

ایکسل_ورق — Worksheet

Obtained from a ایکسل_کتاب via .ورق() or .ورق_بنائیں().

اردو: ورق (worksheet) ایک ایکسل شیٹ ہے۔ اسے ایکسل_کتاب سے .ورق() یا .ورق_بنائیں() سے حاصل کریں۔

Properties:

Property Type Description
.نام string Sheet name
.صف_تعداد int Number of rows with data
.کالم_تعداد int Number of columns with data

Methods (all 1-indexed):

Method Returns Description
.خانہ(صف, کالم) any Read cell value at row, col
.خانہ_مقرر(صف, کالم, قدر) Write value to cell
.قطار_پڑھو(صف) list All values in a row
.کالم_پڑھو(کالم) list All values in a column
.سب_ڈیٹا() list[list] All rows as a 2D list
.قطار_شامل(قدریں) Append a new row at the bottom

ایکسل_کتاب — Workbook

اردو: ایکسل_کتاب پوری ایکسل فائل کی نمائندگی کرتی ہے۔ نئی ورک بک بنائیں یا موجودہ فائل کھولیں۔

متغیر wb = نیا ایکسل_کتاب()               // نئی ورک بک
متغیر wb = نیا ایکسل_کتاب("موجودہ.xlsx")  // موجودہ فائل کھولیں
Method Returns Description
.ورق() ایکسل_ورق Active (first) worksheet
.ورق_بنائیں(نام) ایکسل_ورق Create and activate a new sheet
.ورق_فہرست() list[str] All sheet names
.ورق_حذف(نام) Delete a sheet by name
.محفوظ(راستہ) Save workbook to a file path
.بند() Close the workbook

Standalone Excel functions — اکیلے ایکسل فنکشن

Function Returns Description
ایکسل_لکھو(ڈیٹا_2D, راستہ, sheet_name="Sheet") string Write 2D list to new Excel file; returns path
ایکسل_پڑھو(راستہ, sheet_name=null) list[list] Read Excel sheet into 2D list (null = active sheet)

Examples — مثالیں

Example 1 — Create a ZIP archive

اردو: مثال ۱ — زپ آرکائیو بنانا

درآمد { زپ_فائل, زپ_بناؤ } سے "اردو/فائلیں"

// ═══════════════════════════════════════
// طریقہ 1: زپ_فائل کلاس سے
// ═══════════════════════════════════════

متغیر z = نیا زپ_فائل("پروجیکٹ.zip", "w")

// فائلیں شامل کریں
z.شامل("main.urdu")
z.شامل("config.json")
z.شامل("README.md")

// متن بطور فائل شامل کریں
z.متن_شامل("نوٹ.txt", "یہ ZIP میں خودکار بنائی گئی فائل ہے۔")

// بائٹس شامل کریں
z.بائٹس_شامل("ڈیٹا.bin", [0x89, 0x50, 0x4E, 0x47])

z.بند()
لکھو("ZIP بنائی گئی: پروجیکٹ.zip")

// ═══════════════════════════════════════
// طریقہ 2: زپ_بناؤ فنکشن
// ═══════════════════════════════════════

زپ_بناؤ("بیک_اپ.zip", [
    ["main.urdu",     "کوڈ/main.urdu"],
    ["config.json",   "ترتیبات/config.json"],
    ["docs/guide.md", "دستاویز/guide.md"]
])
لکھو("بیک اپ ZIP تیار")

Example 2 — Read and extract a ZIP

اردو: مثال ۲ — زپ فائل پڑھنا اور نکالنا

درآمد { زپ_فائل, زپ_نکالو, زپ_فہرست } سے "اردو/فائلیں"

// فہرست دیکھیں (کھولے بغیر)
متغیر نام_فہرست = زپ_فہرست("پروجیکٹ.zip")
لکھو("ZIP میں فائلیں:")
کے_لیے (متغیر نام کا نام_فہرست) {
    لکھو("  -", نام);
}

// تفصیلی معلومات
متغیر z = نیا زپ_فائل("پروجیکٹ.zip", "r")

کے_لیے (متغیر نام کا z.فہرست()) {
    متغیر معلومات = z.معلومات(نام)
    لکھو(`  ${معلومات.نام}: ${معلومات.اصل_سائز} بائٹ → ${معلومات.سکڑا_سائز} بائٹ`)
}

// ایک فائل پڑھیں
متغیر مواد = z.متن_پڑھو("نوٹ.txt")
لکھو("\nنوٹ.txt مواد:", مواد)

// ایک فائل نکالیں
z.نکالو("main.urdu", "نکالی_فائلیں/")

z.بند()

// تمام نکالیں
متغیر نکالی_گئیں = زپ_نکالو("پروجیکٹ.zip", "نکالا_مواد/")
لکھو("\nنکالی گئی فائلیں:")
کے_لیے (متغیر راستہ کا نکالی_گئیں) {
    لکھو("  ✓", راستہ);
}

Example 3 — Append to existing ZIP

اردو: مثال ۳ — موجودہ زپ میں فائلیں شامل کرنا

درآمد { زپ_فائل } سے "اردو/فائلیں"

// موجودہ ZIP میں فائلیں شامل کریں
متغیر z = نیا زپ_فائل("پروجیکٹ.zip", "a")

z.شامل("نئی_فائل.urdu")
z.متن_شامل("CHANGELOG.txt", "v2.0 — نئی خصوصیات شامل کی گئیں")

لکھو("ZIP اپڈیٹ سے پہلے:", z.فہرست().length, "فائلیں")
z.بند()

// تصدیق کریں
متغیر z2 = نیا زپ_فائل("پروجیکٹ.zip", "r")
لکھو("ZIP اپڈیٹ کے بعد:", z2.فہرست().length, "فائلیں")
z2.بند()

Example 4 — Create Excel with data

اردو: مثال ۴ — ڈیٹا کے ساتھ ایکسل فائل بنانا

درآمد { ایکسل_کتاب, ایکسل_لکھو } سے "اردو/فائلیں"

// ═══════════════════════════════════════
// طریقہ 1: ایکسل_لکھو (آسان)
// ═══════════════════════════════════════

متغیر ڈیٹا = [
    ["نام",    "عمر", "شہر",      "تنخواہ"],
    ["احمد",   25,    "کراچی",    50000],
    ["فاطمہ",  30,    "لاہور",    65000],
    ["علی",    22,    "اسلام آباد", 45000],
    ["زینب",   28,    "پشاور",    55000]
]

متغیر راستہ = ایکسل_لکھو(ڈیٹا, "ملازمین.xlsx", sheet_name="ملازمین")
لکھو("محفوظ:", راستہ)

// ═══════════════════════════════════════
// طریقہ 2: ایکسل_کتاب کلاس (مکمل کنٹرول)
// ═══════════════════════════════════════

متغیر wb = نیا ایکسل_کتاب()
متغیر ws = wb.ورق()

// ہیڈر
ws.خانہ_مقرر(1, 1, "مصنوع")
ws.خانہ_مقرر(1, 2, "مقدار")
ws.خانہ_مقرر(1, 3, "قیمت")
ws.خانہ_مقرر(1, 4, "کل")

// ڈیٹا قطاریں
متغیر فروخت = [
    ["پنسل",    100, 10],
    ["کاپی",    50,  25],
    ["قلم",     200, 15],
    ["رابر",    150, 5]
]

متغیر صف_نمبر = 2
کے_لیے (متغیر مصنوع کا فروخت) {
    ws.خانہ_مقرر(صف_نمبر, 1, مصنوع[0])
    ws.خانہ_مقرر(صف_نمبر, 2, مصنوع[1])
    ws.خانہ_مقرر(صف_نمبر, 3, مصنوع[2])
    ws.خانہ_مقرر(صف_نمبر, 4, مصنوع[1] * مصنوع[2])  // مقدار × قیمت
    صف_نمبر += 1
}

// قطار شامل کریں
ws.قطار_شامل(["کل", "", "", ws.کالم_پڑھو(4).slice(1).reduce((a,b)=>a+b, 0)])

wb.محفوظ("فروخت_رپورٹ.xlsx")
wb.بند()
لکھو("فروخت رپورٹ محفوظ ہو گئی")

Example 5 — Read Excel data

اردو: مثال ۵ — ایکسل فائل سے ڈیٹا پڑھنا

درآمد { ایکسل_کتاب, ایکسل_پڑھو } سے "اردو/فائلیں"

// ═══════════════════════════════════════
// طریقہ 1: ایکسل_پڑھو (آسان)
// ═══════════════════════════════════════

متغیر ڈیٹا = ایکسل_پڑھو("ملازمین.xlsx")
لکھو("کل قطاریں:", ڈیٹا.length)

متغیر ہیڈرز = ڈیٹا[0]
لکھو("کالمز:", ہیڈرز)

کے_لیے (متغیر i کا حد(1, ڈیٹا.length)) {
    متغیر قطار = ڈیٹا[i]
    لکھو(`  ${قطار[0]}: عمر ${قطار[1]}, ${قطار[2]}`)
}

// ═══════════════════════════════════════
// طریقہ 2: ایکسل_کتاب (خانہ بہ خانہ)
// ═══════════════════════════════════════

متغیر wb = نیا ایکسل_کتاب("فروخت_رپورٹ.xlsx")
متغیر ws = wb.ورق()

لکھو(`\nشیٹ: ${ws.نام}`)
لکھو(`صفیں: ${ws.صف_تعداد}, کالم: ${ws.کالم_تعداد}`)

// پہلی قطار (ہیڈر)
متغیر ہیڈر_قطار = ws.قطار_پڑھو(1)
لکھو("ہیڈر:", ہیڈر_قطار)

// چوتھا کالم (کل)
متغیر کل_کالم = ws.کالم_پڑھو(4)
لکھو("کل کالم:", کل_کالم)

// مخصوص خانہ
متغیر قیمت = ws.خانہ(3, 3)
لکھو("قطار 3، کالم 3:", قیمت)

wb.بند()

Example 6 — Multiple Excel sheets

اردو: مثال ۶ — متعدد ورق (worksheets) والی ایکسل فائل

درآمد { ایکسل_کتاب } سے "اردو/فائلیں"

// ═══════════════════════════════════════
// ماہانہ رپورٹ — تین شیٹس
// ═══════════════════════════════════════

متغیر wb = نیا ایکسل_کتاب()

متغیر مہینے = [
    { نام: "جنوری",  ڈیٹا: [["مصنوع", "فروخت"], ["چائے", 5000], ["قہوہ", 3000]] },
    { نام: "فروری",  ڈیٹا: [["مصنوع", "فروخت"], ["چائے", 6200], ["قہوہ", 2800]] },
    { نام: "مارچ",   ڈیٹا: [["مصنوع", "فروخت"], ["چائے", 7100], ["قہوہ", 3500]] }
]

کے_لیے (متغیر مہینہ کا مہینے) {
    متغیر ws = wb.ورق_بنائیں(مہینہ.نام)
    کے_لیے (متغیر قطار کا مہینہ.ڈیٹا) {
        ws.قطار_شامل(قطار)
    }
}

// پہلی (خودکار بنائی گئی) خالی شیٹ حذف کریں
اگر (wb.ورق_فہرست().includes("Sheet")) {
    wb.ورق_حذف("Sheet")
}

لکھو("شیٹس:", wb.ورق_فہرست())
wb.محفوظ("سہ_ماہی_رپورٹ.xlsx")
wb.بند()
لکھو("سہ ماہی رپورٹ محفوظ ہو گئی")

// شیٹس پڑھیں
متغیر wb2 = نیا ایکسل_کتاب("سہ_ماہی_رپورٹ.xlsx")
لکھو("\nتمام شیٹس:")
کے_لیے (متغیر شیٹ_نام کا wb2.ورق_فہرست()) {
    متغیر ws = ایکسل_پڑھو("سہ_ماہی_رپورٹ.xlsx", sheet_name=شیٹ_نام)
    لکھو(`  ${شیٹ_نام}: ${ws.length - 1} مصنوعات`)
}
wb2.بند()

Example 7 — ZIP + Excel together (backup workflow)

اردو: مثال ۷ — زپ اور ایکسل ملا کر بیک اپ کا نظام

درآمد { ایکسل_لکھو, ایکسل_پڑھو } سے "اردو/فائلیں"
درآمد { زپ_بناؤ, زپ_نکالو } سے "اردو/فائلیں"

// ─── 1: Excel فائل بنائیں ─────────────────────
ایکسل_لکھو([
    ["نام",    "نمبر", "گریڈ"],
    ["احمد",   85,     "B"],
    ["فاطمہ",  92,     "A"],
    ["علی",    78,     "C"]
], "نتائج.xlsx")

// ─── 2: ZIP میں بند کریں ──────────────────────
زپ_بناؤ("نتائج_بیک_اپ.zip", [
    ["نتائج.xlsx", "نتائج/نتائج.xlsx"],
    ["README.md",   "نتائج/README.md"]
])
لکھو("بیک اپ بنایا")

// ─── 3: بحال کریں ─────────────────────────────
متغیر نکالی_گئیں = زپ_نکالو("نتائج_بیک_اپ.zip", "بحالی/")
لکھو("بحال:", نکالی_گئیں)

// ─── 4: بحال شدہ ڈیٹا پڑھیں ─────────────────
متغیر ڈیٹا = ایکسل_پڑھو("بحالی/نتائج/نتائج.xlsx")
لکھو("\nبحال شدہ ڈیٹا:")
کے_لیے (متغیر قطار کا ڈیٹا) {
    لکھو(" ", قطار)
}

Previous: Web Scraper → | Next: Cryptography →