14
ی عت ن ص گاه ش ن دا- ی مهساز ا رن بی ن ا ب م ف# ی ر ش ی ’ه’’س’ا’ز’ م ا’ ر’ن’ ب ی’ ن ا’ ’ب’ مFUNDAMENTALS OF PROGRAMMING ردِ خ ق ل ا ام خ هن ب ری گل# ی2 ب ر# ی5 ظ ن ی ن مدزس: سه ل خ22 ها ده رونA ب: سال دوم م# ی ب1392 - 1393

مبانی برنامهسازی Fundamentals of Programming

  • Upload
    nevina

  • View
    44

  • Download
    4

Embed Size (px)

DESCRIPTION

به‌نام خالق خِرد. مبانی برنامه‌سازی Fundamentals of Programming. مدرس: بی‌نظیر بیگلری. جلسه 22: پرونده‌ها. عناوین. مقدمه نوشتن در پرونده‌ها بازکردن پرونده‌های متنی روش‌های خواندن از پرونده‌ها پرونده‌های دودویی خواندن صفحات وب (فصل 13 از کتاب اصلی). جلسه 22. مقدمه. - PowerPoint PPT Presentation

Citation preview

Page 1: مبانی برنامهسازی Fundamentals of Programming

مبانی برنامه سازی - دانشگاه صنعتی شریف

مبانی‌برنامه‌سازیFUNDAMENTALS OF

PROGRAMMING

به‌نام‌خالق‌رد خ�

مدرس:‌بی‌نظیر‌بیگلری

:‌پرونده‌ها22جلسه‌

دوم 1393-1392نیم سال

Page 2: مبانی برنامهسازی Fundamentals of Programming

عناوین

مبانی برنامه سازی - دانشگاه صنعتی شریف

2

مقدمه

نوشتن در پرونده ها

بازکردن پرونده های متنی

روش های خواندن از پرونده ها

پرونده های دودویی

خواندن صفحات وب

از کتاب اصلی(13)فصل

22جلسه دوم 1393-1392نیم سال

Page 3: مبانی برنامهسازی Fundamentals of Programming

مقدمه

مبانی برنامه سازی - دانشگاه صنعتی شریف

3

وقتی یک برنامه اجرا می شود داده های آن درRAM (Random Access Memory) ار اس=ت ب=ه این معن=ا ذخ=یره می ش=ود. این حافظ=ه س=ریع و ف=ر?

ک=ه= وق=تی= اج=رای بر=نام=ه= تم=ام م=ی ش=ود =و ک=امپیوت=ر خ=اموش م=ی گ=ردد = I آنگ=اه =داده ه=ای آن از بین =می ر=ون=د. ب=ر=ای آ=نک=ه ب=ت=وان ب=ه این =داده= ه=ا بع=داک=رد مث=ل ار ذخ=یره غ=یرفر? را روی حافظ=ه آن بای=د دسترس=ی داش=ت

CDیا USBدیسک سخت،

ار پرون=ده )فای=ل( گفت=ه به مح=ل قرارگ=یری داده ه=ا روی حافظ=ه غ=یرفر?یادداش=ت دف=تر ب=ه بس=یار ش=بیه فایل ه=ا نوش=تن و خوان=دن می ش=ود. ا=س=ت؛ =ب=ه عن=و=ان مث=ال ا=گ=ر بخ=واهیم =از دف=تر ی=اددا=ش=ت اس=تف=اده ک=نی=م ابت=د=ا ب=ا=ی=د =آن را ب=از ک=ن=یم =و= پس= از اتم=ام =ک=ار=، آن ر=ا ب=ب=ن=دی=م؛= در= ط=و=ل

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

22جلسه دوم 1393-1392نیم سال

Page 4: مبانی برنامهسازی Fundamentals of Programming

نوشتن در فایل

مبانی برنامه سازی - دانشگاه صنعتی شریف

4

:قرار است سه خط در یک فایل متنی بنویسیم

( باز ک=ردن فای=ل، چ=یزی ایج=اد می کن=د ک=ه م=ا ب=ه آن دس=تگیرهhandle می گ=وییم و )ب=ه =ی=ک =ش=یء= دس=تگ=ی=ره =جدی=د =اش=ار=ه دار=د و =روی همین دس=تگیره، myfileمتغ=ی=ر=

مت=دهایی فرا=خوانی می =ک=نیم که فا=یل اص=لی ر=و=ی دی=سک را= تغی=ی=ر می دهن=د.

تابعopen دومین و فای=ل اس=م آرگوم=ان اولین ک=ه می گ=یرد آرگوم=ان دو ، =ب=ه م=ع=نی w( ک=ه modeآرگو=م=ان، =طریق=ه و ه=دف ب=ا=زکردن ف=ای=ل را ب=ی=ان می کن=د= )

ب=از= ک=ر=دن =فای=ل= ب=ا ه=دف= نو=ش=تن= اس=ت= ا=ل=بت=ه =اگ=ر ف=ا=یلی= =ب=ا =این ن=ا=م رو=ی دیس=ک =و=ج=و=د نداش=ته= =باش=د= آن را= ب=ه وج=ود =می آو=ر=د و =ا=گ=ر مو=ج=ود= با=ش=د =آنچ=ه م=ا ب=ه =آن

ضافه می کنیم در آن نوشته می شود.

مت=دclose ب=ه سیس=تم )عام=ل( می گوی=د ک=ه ک=ار ب=ا فای=ل تم=ام ش=د و دیگ=ر برنامه ه=امی توانند از آن استفاده کنند.

22جلسه دوم 1393-1392نیم سال

Page 5: مبانی برنامهسازی Fundamentals of Programming

خواندن خط به خط فایل

مبانی برنامه سازی - دانشگاه صنعتی شریف

5

( می خ=واهیم ف=ایلی ب=ا ه=دف خوان=دنr ب=از ک=نیم و خ=ط ب=ه خ=ط آن را بخ=وانیم و )بخ=وا=ه=یم ف=ای=لی =ر=ا ا=گ=ر =ب=ا =ه=دف= =خ=وان=د=ن=،= و= =ببن=د=ی=م=. ک=ن=ی=م چ=اپ= ر=و=ی ص=ف=ح=ه

بازکنیم که وجود نداشته باشد آنگاه خطا دریافت می کنیم.

مت=دreadline ه=ر چ=ه ک=ه در فای=ل ت=ا رس=یدن ب=ه ک=اراکترnewline و ش=امل آن را ازفای=ل م=ی خوان=د و= برمی =گردان=د؛ =اگ=ر خ=ط= د=یگ=ر=ی =د=ر فای=ل ب=اقی نم=ان=ده =باش=د ا=ین

ب=ا=ر ح=ل=ق=ه 4 خ=ط دا=ش=ت=ه با=ش=د 3ت=ابع =ی=ک ر=ش=ته خ=ا=لی =برمی= =گردا=ن=د )=ا=گ=ر =فا=ی=ل=، تکرار می شود(.

22جلسه دوم 1393-1392نیم سال

Page 6: مبانی برنامهسازی Fundamentals of Programming

تبدیل فایل به لیستی از خطوط

مبانی برنامه سازی - دانشگاه صنعتی شریف

6

فرض کنی=د ف=ایلی را ک=ه می خ=واهیم تب=دیل ب=ه لیس=تی از خط=وط ک=نیمح=اوی اس=امی دوس=تان و ایمیل ه=ای آنهاس=ت؛ ام=ا می خ=واهیم ب=ه ص=ورت

الفبایی مرتب شده باشند.

یک راه این اس=ت ک=ه تم=ام فای=ل را خط به خ=ط خوان=ده و در ی=ک لیس=تذخ=یره ک=رده س=پس لیس=ت را م=رتب ک=رده و در فای=ل دیگ=ری ذخ=یره

کنیم.

22جلسه دوم 1393-1392نیم سال

Page 7: مبانی برنامهسازی Fundamentals of Programming

خواندن یکجای فایل

مبانی برنامه سازی - دانشگاه صنعتی شریف

7

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

اگ=ر س=اختار خط=وط فای=ل ب=رای م=ا مهم نباش=د از این روش به=ره می گ=یریم و ب=ه برای ش=کستن رشته= به کلم=ات اس=تفاد=ه می =کنیم.splitعنوا=ن مثال ا=ز مت=د

در خ=ط اول ک=ه ه=دف خوان=دن را مش=خص نک=رده ایم ب=ه ص=ورت پیش ف=رض، خوان=دن(r.را در نظر می گیرد )

اگ=ر مس=یر فای=ل ش=ما در مس=یر ج=اری نباش=د الزم اس=ت ت=ا این مس=یر را واض=ح بی=انو= در سیس=تم کن=ی=د ک=ه= =در =سی=س=تم= عا=م=ل وی=ن=دوز ب=ه این= ص=ورت= =

عامل لینوکس به این صورت است

22جلسه دوم 1393-1392نیم سال

Page 8: مبانی برنامهسازی Fundamentals of Programming

کار با فایل های دودویی

مبانی برنامه سازی - دانشگاه صنعتی شریف

8

( فشرده ش=ده فیلم، عکس، فایل ه=ای zipفایل ه=ای ... و اج=رایی برنامه ه=ای ،)ب=ا نمی ت=وان و خط=وط =س=ازمان=دهی =نش=ده اند در =ق=ال=ب دارن=د =چ=ون ن=ام دودویی=

ویرایشگرهای متن آنها را بازکرد.

.پایتون وق=تی چ=نین ف=ایلی را می خوان=د ب=ه ج=ای رش=ته، بایت ه=ا را برمی گرداند

به 2و1در خطوط mode حرف ،b.اضافه شده

تابعread یک آرگومان می گیرد که تعداد بایت های

خوانده شده را تعیین می کند.

اگرbuffer.خالی بود یعنی به انتهای فایل رسیده ایم

گون=ةbuf در اینج=ا bytes اس=ت و اگ=ر از ت=ابعtype.اس=تفاده کنی=د آن را خواهی=د دید

22جلسه دوم 1393-1392نیم سال

Page 9: مبانی برنامهسازی Fundamentals of Programming

یک مثال پردازش متن

مبانی برنامه سازی - دانشگاه صنعتی شریف

9

فرض کنی=د ق=رار اس=ت ب=ا دی=دن ک=اراکتر خاص=ی تع=دادی خط=وط خ=الیاض=افه ش=ود ی=ا تنه=ا خط=وطی چ=اپ ش=وند ک=ه ح=اوی زیررش=ته وی=ژه ای

باشد )فیلترکردن(.

ب=ه ج=ز می خ=واهیم محتوی=ات ی=ک فای=ل را در فای=ل دیگ=ری ک=پی ک=نیم # شروع می شوند:خطوطی که با

22جلسه دوم 1393-1392نیم سال

Page 10: مبانی برنامهسازی Fundamentals of Programming

دایرکتوری ها

مبانی برنامه سازی - دانشگاه صنعتی شریف

10

ق=وانین مجموع=ه توس=ط ار غ=یرفر? ذخیره س=ازی وس=یله روی فایل ه=ا این می ش=وند؛ س=ازماندهی فای=ل سیس=تم ن=ام ب=ه شناخته ش=ده ای

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

به ط=ور پیش ف=رض دایرکت=وری ج=اری ب=رای ب=از ک=ردن و نوش=تن فایل ه=اI مسیر فایل مشخص شود. مد نظر قرار می گیرد مگر اینکه صراحتا

:یااگر سیستم عامل ویندوز باشد

22جلسه دوم 1393-1392نیم سال

Page 11: مبانی برنامهسازی Fundamentals of Programming

خواندن صفحات وب

مبانی برنامه سازی - دانشگاه صنعتی شریف

11

برای ک=پی کردن محتوی=اتی ک=ه در آدرس مش=خص وب ق=رار دارد روییک فایل محلی، می توان از کد زیر استفاده کرد.

م=ورد تابع می توان=د این=ترنت از ف=ایلی ن=وع ه=ر دانل=ود ب=رای استفاده قرارگیرد اما باید چند کار قبل از آن انجام شود:

منبعی ک=ه ق=رار اس=ت ب=ه آن دسترس=ی داش=ته باش=یم بای=د وج=ود داش=تهباشد.

بای=د مج=وز نوش=تن در فای=ل مقص=د را داش=ته باش=یم چ=را ک=ه اگ=ر مس=یر adminن=دهیم در مس=یر پ=ایتون ذخ=یره می ش=ود)و ممکن اس=ت ش=ما نقش

بنویسید(.cسیستم نباشید و نمی توانید در درایو .اگر پشت یک سرور پراکسی قرار داریم به تصدیق مربوطه نیاز داریم

22جلسه دوم 1393-1392نیم سال

Page 12: مبانی برنامهسازی Fundamentals of Programming

خواندن صفحات وب )ادامه(

مبانی برنامه سازی - دانشگاه صنعتی شریف

12

را آنچ=ه را ک=ه از وب خوان=دیم در فای=ل ذخ=یره ک=نیم، آن آنک=ه به ج=ای I در یک رشته قرار داده و باز می گردانیم. مستقیما

ی=ک ک=ه url (urlopen)بازکردن س=وکت ن=ام ب=ه برمی گردان=د چ=یزی دس=تگی=ره ای= اس=ت= ب=رای م=ا، ت=ا ب=ین برن=ام=ه خ=ود و س=رور= دور و=ب اتص=ال

این س=وکت مت=دهای را closeو read، writeبرق=رار ک=نیم. می ت=وان روی فراخوانی کرد.

22جلسه

import urllib.request def retrieve_page(url): """ Retrieve the contents of a web page. The contents is converted to a string before returning it. """ my_socket = urllib.request.urlopen(url) dta = (my_socket.readall()) my_socket.close() return dta

the_text = retrieve_page("http://xml.resource.org/public/rfc/txt/rfc793.txt")

print(the_text)

دوم 1393-1392نیم سال

Page 13: مبانی برنامهسازی Fundamentals of Programming

تمرین

مبانی برنامه سازی - دانشگاه صنعتی شریف

13

برن=امه ای بنویس=ید ک=ه از ی=ک فای=ل خوان=ده و در ی=ک فای=ل جدی=د خط=وطرا ب=ا ت=رتیب عکس بنویس=د یع=نی اولین خ=ط در فای=ل ق=دیمی آخ=رین خ=ط

در فایل جدید باشد.

برن=امه ای بنویس=ید ک=ه از ی=ک فای=ل خوان=ده و تنه=ا خط=وطی را ک=ه ح=اوی است روی صفحه نمایش چاپ کند.snakeزیررشته

قسمت های مربوط به پردازش متن فایل خوانده شود(14)فصل

22جلسه دوم 1393-1392نیم سال

Page 14: مبانی برنامهسازی Fundamentals of Programming

ادامه مطلب در جلسه بعد

مبانی برنامه سازی - دانشگاه صنعتی شریف

14

محاسبات‌عددی

22جلسه دوم 1393-1392نیم سال