通常來說,一個Python程序可以從鍵盤讀取輸入,也可以從文件讀取輸入;而程序的結果可以輸出到屏幕上,也可以保存到文件中便于以后使用。本文就來介紹Python中最基本的I/O函數。
一、控制臺I/O
1.讀取鍵盤輸入
內置函數input([prompt]),用于從標準輸入讀取一個行,并返回一個字符串(去掉結尾的換行符):
s = input("Enter your input:")
注:在Python 3.x版本中取消了 raw_input() 函數。
2.打印到屏幕
最簡單的輸出方法是用print語句,你可以給它傳遞零個或多個用逗號隔開的表達式:
print([object, ...][, sep=' '][, end='endline_character_here'][, file=redirect_to_here])
方括號內是可選的,sep表示分割符,end表示結束符,file表示重定向文件。如果要給sep、end、file指定值必須使用關鍵字參數。
print('hello', 'world', sep='%') # 輸出 hello%world print('hello', 'world', end='*') # 輸出 hello world*,并且不換行
二、文件I/O
讀寫文件之前,先用open()函數打開一個文件,它會返回一個文件對象(file object):
f = open(filename,mode)
如果不指定mode參數,文件將默認以‘r'模式打開。模式中的字符有:
r:只讀
w:只寫,如果文件已存在則將其覆蓋。如果該文件不存在,創建新文件
+:讀寫(不能單獨使用)
a:打開文件用于追加,只寫,不存在則創建新文件
b:以二進制模式打開(不能單獨使用)
所以可能的模式大概有r、w、r+、w+、rb、wb、rb+、wb+、a、a+、ab、ab+,注意只有w和a可以創建文件。
通常情況下,文件都是以文本模式(text mode)打開的,也就是說,從文件中讀寫的是以一種特定的編碼格式進行編碼(默認的是 UTF-8)的字符串。如果文件以二進制模式(binary mode)打開,數據將以字節對象的形式進行讀寫:
f = open('a.txt','wb+') f.write('I like apple!') # 報錯 f.write(b'I like apple!') # 以bytes對象的形式進行讀寫
Bytes對象是0到127的不可修改的整數序列,或純粹的 ASCII 字符,它的用途是存儲二進制數據。
可以通過在一個字符串前面加上'b'來創建一個bytes literal;
也可以通過bytes() 函數創建一個 bytes 對象。
注意:如果bytes() 函數的初始化器是一個字符串,那么必須提供一種編碼。
b1 = b'This is string' b2 = bytes('This is string', 'UTF-8') # 必須指定編碼格式
字符串對象與字節對象是不兼容的,要將 bytes 轉變為 str, bytes 對象必須要進行解碼,使用decode() 方法:
b = bytes('This is string', 'UTF-8') print(b, b.decode(), sep='/n') # 輸出: # b'This is string' # This is string
新聞熱點
疑難解答