Python學習筆記(十)——輸入與輸出

用戶輸入輸出
用戶輸入與輸出函數爲input()print()

  • input()函數接收字符串參數並輸出在屏幕上,回傳用戶輸入的字符串
  • print()函數負責格式輸出

簡單練習:寫一段小程序判斷輸入的一句話是否是迴文

punctuation = ['.', '?', '!', ':', ';', '-', '—',\
               '(', ')'
'[', ']', '"', '"', ' ', '/', '\\', ',', "'"]
string_in = input("input a string\n")
string = list(string_in)
for ch_in in string:
    if ch_in in punctuation:
        string.remove(ch_in)
string_re = list(string);
string.reverse()
print("reversed string is {0}".format("".join(string)))
if string_re == string:
    print('this is a palindrome')

文件輸入與輸出
可以通過創建一個屬於 file 類的對象並適當使用它的 read 、 readline 、 write 方法
來打開或使用文件,並對它們進行讀取或寫入。讀取或寫入文件的能力取決於以何種方式打開文件。完成文件操作後,應調用 close 方法來告訴 Python 已經完成了對該文件的使用。
打開模式:閱讀模式( ‘r’ ),寫入模式( ‘w’ )和追加模式( ‘a’ )。還可以選擇是通過文本模式( ‘t’ )還是二進制模式( ‘b’ )來讀取、寫入或追加文本。默認情況下, open() 會將文件視作文本(text)文件,並以閱讀(read)模式打開它。
打開方式
文件類的類方法

  • file.readline ():可以用來讀取文件的每一行。這一方法將會一串完整的行,其中在行末尾還包含了換行符。
  • file.read([size]):從文件讀取指定的字節數,如果未給定或爲負則讀取所有。
  • file.next(): 返回文件下一行。
  • file.readlines([sizeint]):讀取所有行並返回列表,若給定sizeint>0,返回總和大約爲sizeint字節的行, 實際讀取值可能比 sizeint 較大, 因爲需要填充緩衝區。
  • file.write(str):將字符串寫入文件,返回的是寫入的字符長度。
  • file.seek(offset[, whence]):設置文件當前位置。offset : 開始的偏移量,也就是代表需要移動偏移的字節數。whence:可選,默認值爲 0。給offset參數一個定義,表示要從哪個位置開始偏移;0代表從文件開頭開始算起,1代表從當前位置開始算起,2代表從文件末尾算起。
  • file.writelines(sequence):向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。
  • file.tell():返回文件當前位置。
  • file.truncate([size]):從文件的首行首字符開始截斷,截斷文件爲 size 個字符,無size 表示從當前位置截斷;截斷之後後面的所有字符被刪除,其中 Widnows 系統下的換行代表2個字符大小。
    示例代碼:
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
'''
# 打開文件以編輯('w'riting)
f = open('poem.txt', 'w')
# 向文件中編寫文本
f.write(poem)
# 關閉文件
f.close()
# 如果沒有特別指定,
# 將假定啓用默認的閱讀('r'ead)模式
f = open('poem.txt')
while True:
    line = f.readline()
    # 零長度指示 EOF
    if len(line) == 0:
        break
# 每行(`line`)的末尾
# 都已經有了換行符
#因爲它是從一個文件中進行讀取的
print(line, end='')
# 關閉文件
f.close()

Pickle模塊
Python 提供了 pickle 標準模塊,通過它可以將任何純 Python 對象存儲到一個文件中,並在稍後將其取回。
示例

import pickle
# 存儲相關對象的文件的名稱
shoplistfile = 'shoplist.data'
# 需要購買的物品清單
shoplist = ['apple', 'mango', 'carrot']
# 準備寫入文件
f = open(shoplistfile, 'wb')
# 轉儲對象至文件 
pickle.dump(shoplist, f) 
f.close()
# 清除shoplist 變量
del shoplist
# 重新打開存儲文件
f = open(shoplistfile, 'rb')
# 從文件中載入對象
storedlist = pickle.load(f)
print(storedlist)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章