کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.
کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.

خواندن و نوشتن فایل با Python

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

 


Files in Python

کد زیر یک برنامه است که ابتدا از کاربر می پرسد که می خواهد فایلی را بخواند یا بنویسد و مراحلش طبق عکس بالا پیش می رود.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#! Python 3
#Mehrad Pooryoussof
#www.CodeWriter.blogsky.com
def readFile(FilePath):
    File = open(FilePath)
    for Line in File:
        print(Line,end="")
def writeFile(FilePath,mode):
    File = open(FilePath,mode)
    while 1:
        text=input("Enter something or write 'textfinished;' to finish writing\n")
        if text!="textfinished;":
            File.write(text+"\n")
        else:
            break
    
while 1:
    print("\n----------www.CodeWriter.blogsky.com----------")
    Mode = input("Enter mode. 'Read' or 'Write'\n")
    Mode = Mode.lower()
    if Mode == "read" or Mode == "r" or Mode == "reader" or Mode == "read mode" or Mode == "readmode":
        path = input("Enter file path\n")
        if len(path) > 0:
            try:
                readFile(path)
            except:
                print("I coudn't read file")
    elif Mode == "write" or Mode == "w" or Mode == "writer" or Mode == "write mode" or Mode == "writemode":
        m = input("If you want to 'clean file then write' send 'w' and If you want to 'add your text' to file send 'a'\n")
        m = m.lower()
        if m == "w" or m == "a":
            path = input("Enter file path\n")
            if len(path) > 0:
                try:
                    writeFile(path,m)
                except:
                    print("I coudn't open file")
        else:
            print(m," isn't true")
    else:
        print(Mode," isn't true")

خط 1  تا 3 کامنت هستند. خط 4 تابعی با نام readFile تعریف می کند و یک ورودی با نام FilePath دریافت می کند(خط 5 تا 7 کد های این تابع هستند.). خط 5 فایلی که در مسیر متغیر FilePath قرار دارد را در File باز می کند. خط 6 حلقه فُری(for) تعریف می کند که هر بار یک خط از File را در متغیر Line می ریزد و کد های خط 7 را اجرا می کند. خط 7 متغیر Line را روی صفحه پرینت می کند. 

نکته: end="" برای این است که «\n» را در آخر متن Line ننویسد زیرا در آخر خود Line دستور رفتن به خط بعد وجود دارد و در صورت نوشته نشدن end="" بین هر خط از متن یک خط خالی می ماند.

خط 8متغیری با نام writeFile ایجاد می کند و متغیر های FilePath و mode را می گیرد(خط 9 تا 15 کد های این تابعند.). خط 9 فایل موجود در مسیر FilePath را در متغیر File باز می کند(متغیر mode در قسمتی دیگر از برنامه امتحان می شود که حتماً برابر a یا w باشد.). خط 10 یک حلقه while با شرط 1 یا درست ایجاد می کند که تا هنگامی که با break از آن خارج نشویم کد های خط 11 تا 15 را اجرا می کند. خط 11 به کاربر می گوید که یا عبارتی وارد کند یا عبارت" textfinished;" را وارد کند تا نوشتن تمام شود(من این متن را انتخاب کردم زیرا معمولاً هیچ یک از خط های نوشته کاربر برابر این عبارت نیست.) و ورودی کاربر را در متغیر text ذخیره می کند. خط 12 چک می کند که آیا متغیر text با textfinished;"برابر است یا خیر اگر برابر بود کد else(خط 14) که در خط 15 قرار دارد اجرا می شود و اگر برابر نبود کد خط 13 به اجرا در می آید. خط 13 در File متن وارد شده توسط کاربر را همراه با یک \n(که کار رفتن به خط بعد را انجام می دهد) می نویسد. خط 15 از حلقه while خارج می شود. 

خط 17 یک حلقه while با شرط درست می سازد که نا بسته شدن برنامه تکرار می شود. خط 19 از کاربر درخواست می کند که یک مود (read یا write) وارد کند و متن وارد شده توسط کاربر را در متغیر Mode ذخیره می کند. خط 20 متغیر Mode را به حروف کوچک تبدیل می کند. خط 21 چک می کند که آیا Mode با یکی از عبارت های مربوط به read برابر است یا خیر اگر بود خط 22 تا 27 اجرا شده و اگر نبود شرط خط 28 چک می شود. خط 22 از کاربر مسیر فایل را می خواهد و متن وارد شده توسط کاربر را در متغیر path ذخیره می کند. خط 23 چک می کند که تعداد حروف متغیر path بیشتر از 0 است یا خیر اگر از 0 بیشتر بود کد 24 تا 27 اجرا می شود. خط 24 کد خط 25 را امتحان می کند و اگر مشکلی پیش آمد(خط 26) کد خط 27 را اجرا می کند.خط 25 تابع readFile را فراخوانی می کند و متغیر path را به عنوان ورودی به آن می دهد. خط 27 روی صفحه می نویسد که نتوانسته فایل را باز کند. خط 28 در صورتی که شرط خط 21 درست نباشد اجرا می شود و چک می کند که متغیر Mode برابر با یکی از عبارات مربوط به write است یا خیر اگر بود خط های 29 تا 39 را اجرا می کند و اگر نبود (خط 40) کد خط 41 را اجرا می کند. خط 29 از کاربر یکی از حروف w(برای پاک کردن متن قبل و نوشتن متن جدید) یا a (برای نوشتن ورودی در آخر فایل) را می خواهد و متن وارد شده را در متغیر m ذخیره می کند. خط 30 متغیر m را به صورت حروف کوچک در می آورد. خط 31 چک می کند که متغیر m برابر با w یا a است یا خیر اگر بود کد های خط 32 تا 37 اجرا می شود و اگر نبود (خط 38) کد خط 39 اجرا می شود. خط 32 از کاربر مسیر فایل را می خواهد و در آن را در متغیر path ذخیره می کند. خط 33 چک می کند که تعداد حروف متغیر path بیشتر از 0 باشد. خط 34، 36 و 37 نیازی به توضیح ندارد. خط 35 تابع writeFile را فراخوانی می کند و متغیر path و m را به آن می دهد.خط 39 در صورتی که m برابر w یا a نبود می نویسد که متن وارد شده درست نیست. خط 41 هم در صورتی که مود وارد شده read یا write نبود می گوید که Mode درست نیست.

امیدوارم خوشتان بیاید و احتمالاً از مطالب بعد دیگه اینقدر توضیحات خسته کننده نمی دهم.

به امید کد هایی دیگر

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد