PYTHON程式語言的學習-5

在這個講次當中我們學習如何使用檔案(FILE)。


1. 開啟檔案與讀


  1. 將整個檔案一次讀進
  2. 開啟一個檔案,並從這個檔案(readin-1.txt)中讀入資料。要特別記得,讀進來的資料是以字串的形式儲存,字串變數a的長度就是檔案文字的長度。一次讀完檔案,讀寫頭將走到檔案的末端,如果什麼事情都不做,就直接再讀一次這個檔案的話,將讀不到任何東西,b這個字串變數的長度將是0。
    FL = open('readin-1.txt','r')
    a=FL.read()  
    


  3. 使用seek(0)倒捲檔案
  4. FL.seek(0)
    


  5. 每次讀進一行
  6. 每次讀進一行,直到檔案的末了。變數i是字串。
    FL = open('readin-1.txt','r')
    for i in FL:
        print('type(i)=',type(i),' i=',i,)
    




2. 其他從檔案讀進資料的方法


3. 輸出檔案


  1. 輸出檔案
  2. FW = open('write-1.txt','w')  #開啟輸出的檔案
    FW.write('headline-------:\n'+s1+'endline--------')
    FW.close() #關閉輸出的檔案
    

    在原檔案的檔尾並沒有一個換行符號,因此當我們加入一個endline的字串之後,會跟隨在s1的字串變數後頭出現,因此會結成同一行。

4. 以格式化寫入檔案


  • 輸出檔案
  • 使用fw.write(s1)輸出的時候其引數為1個字串(s1),所以我們要將輸出的i,x,y,無論是整數或是浮點數都需轉換為字串,而且為了輸出畫面的清晰,我們必須使用適當的空格寬度和小數點位數。也可以使用格式化的輸出方式,請比較下面的兩個程式和其對應的輸出形式。
    import math
    FW = open('write-2.txt','w')  #開啟輸出的檔案
    pi=math.pi; sin=math.sin; N=10
    for i in range(N+1):
        x=2*pi/N*i
        y=sin(x)
        s1=str(i)+'  '+str(round(x,3))+'  '+str(round(y,3))+'\n'
        FW.write(s1)
        #FW.write('%3d %8.3f  %8.3f \n' % (i,x,y))
    FW.close() #關閉輸出的檔案
    FR = open('write-2.txt','r')
    s=FR.read()
    print('s-----')
    print(s)