نمایش نتایج 1 تا 5 از 5

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

  1. #1

    مشکل در فشرده سازی در پایتون

    می خوام با پایتون برنامه ای بنویسم که فایل را بخونه و فشرده سازی کنه به نحوی که 8بایت بخونه و بیت 8(که برای هر کاراکتری صفر است) و حذف کند
    فایلی که قراره بخونه یک فایل متنی که توش فقط از کدهای اسکی بین 0 تا 127 استفاده شده است
    لطفا کمکم کنید تا استارتش روبزنم
    مرسی

  2. #2

    نقل قول: مشکل در فشرده سازی در پایتون

    به این کار فشرده سازی نمیگن (تقریبا در حالت ایده ال، یک هشتم از حجمت کم میشه. یعنی در صورتی که 8 مگابایت حجم فایلت باشه، میشه 7 مگابایت. اما سرباری رو که برای پردازش فشرده سازی و استخراج کردن داری رو باید در نظر بگیری.)
    تو میگی بیت 8 رو حذف کنه؛ ولی موقع نوشتن، باید همۀ این 7بیتی ها رو به هم بچسبونه توی یه بافر (وگرنه موقع نوشتن همچنان بایت-بایت خواهی نوشت)
    در ضمن، موقع ذخیره سازی روی دیسک، سیستم عامل فایل ها رو در واحد های "کلاستر" روی دیسک ذخیره می کنه، نه بایت .
    یعنی اگر اندازۀ هر کلاستر روی سیستم فایل من 4096 بایت یا همون 4 کیلوبایت باشه، فرقی نمی کنه که من یه فایل 1 بایتی داشته باشم یا 1000 بایتی. در هر دو حالت، یک کلاستر بر روی دیسک من، تخصیص خواهد گرفت به ذخیرۀ این داده
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  3. #3

    نقل قول: مشکل در فشرده سازی در پایتون

    شما خوب منظور منو نفهمیدی هدف من اینکه یک فایل متنی رو باز کنم بعد طوری روی این فایل عملیات انجام بدم که بتونم 8 بایت بخونم ولی 7 بایت بنویسم که طبیعتا باید متن فایل من عوض بشه برای unzip یا Extract (یعنی اینکه بتونه دوباره فایل اولی رو برام برگردونه )هم راه حل میخوام به من بگید از کجا شروع کنم

  4. #4
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: مشکل در فشرده سازی در پایتون

    منم دقیقا نفهمیدم ، اگر تو یک بایت رو ننویسی خوب قاعدتا یک سری داده هات از دست میدی،

    import gzip
    content="Hello World!"
    f=gzip.open('d:\\sample.zip','wb')
    f.write(content);
    f.close()


    من یک مثال ساده فشرده سازی برات گزاشتم.

  5. #5

    نقل قول: مشکل در فشرده سازی در پایتون

    اول از همه باید فایل رو کاراکتر به کاراکتر بخونید و کد اسکی شو بدست بیارید(با استفاده ازord) و بعد اون را به باینری تبدیل کنید (فایل اول فایلی است که کاربر داده و فایل دوم فایلیه که میخواهید فشرده شده شو در اون ذخیره کنید.) من تمام کدهای باینری رو در رشته s ذخیره کردم؛ بعد از اینکه به باینری تبدیل شد هشت تا هشت تا میخونید و آن‌ها را اینت تبدیل میکند و حرف متناظر با اون رو از جدول پیدا می‌کنید با استفاده از chr؛ و بعد کاراکترهای جدید را در فایل جدید ذخیره می‌کنید.


    def compress(name_file , new_file):
    file1 = open(name_file , 'r')
    file2 = open(new_file , 'w' , encoding="utf-8")


    s = ''
    for i in file1.read():
    Unicode = ord(i)
    temp = bin(Unicode)[2:]
    for j in temp:
    s += str(j)

    a = 0
    for i in range(0,len(s)//8):
    newchr = s[a:a+8]
    newchr = int(newchr , 2)
    file2.write(chr(newchr))
    a += 8

    file1.close()
    file2.close()



    آخرین ویرایش به وسیله F_Rahimi : یک شنبه 13 بهمن 1398 در 13:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •