Python 输入输出
1 格式化輸出
Python 輸出值的方式有兩種:表達式語句和 print 函數(文件對象的輸出使用 write 方法,標準文件輸出可以參考 sys.stdout ,詳細文檔)。
如果我們想要將輸出的值轉成字符串,可以使用 repr() 或 str() 函數來實現,其中 repr() 函數產生一個解釋器易讀的表達形式,str() 函數返回一個用戶易讀的表達形式。
如果我們不只是想打印使用空格分隔的值,而是想對輸出進行格式化控制,可以采用兩種方式:一種是自己處理整個字符串,另一種是采用 str.format() 方式,下面介紹下 str.format() 的使用。
1)基本使用
>>> print('{}網址: "{}!"'.format('Python', 'www.baidu.com')) Python網址: "www.baidu.com"括號及其里面的字符 (稱作格式化字段) 將會被 format() 中的參數替換
2)在括號中的數字用于指向傳入對象在 format() 中的位置
>>> print('{0} 和 {1}'.format('Hello', 'Python')) Hello 和 Python >>> print('{0} {1}'.format('Hello', 'Python')) Hello Python >>> print('{1} {0}'.format('Hello', 'Python')) Python Hello3)如果在 format() 中使用了關鍵字參數,那么它們的值會指向使用該名字的參數
>>> print('{name}網址: {site}'.format(name='Python', site='www.baidu.com')) Python網址: www.baidu.com4)位置及關鍵字參數可以任意的結合
>>> print('電商網站 {0}, {1}, {other}。'.format('淘寶', '京東', other='拼多多')) 電商網站 淘寶, 京東, 拼多多。5)用 ** 標志將字典以關鍵字參數的方式傳入
>>> "repr() shows quotes: {!a}; str() doesn't: {!s}".format('test1', 'test2') "repr() shows quotes: 'test1'; str() doesn't: test2"6)字段名后允許可選的 : 和格式指令
# 將 PI 轉為三位精度 >>> import math >>> print('The value of PI is approximately {0:.3f}.'.format(math.pi)) The value of PI is approximately 3.142.7)在字段后的 : 后面加一個整數會限定該字段的最小寬度
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> table = {'Sjoerd': 123, 'Jack': 456, 'Dcab': 789} >>> for name, phone in table.items():print('{0:10} ==> {1:10d}'.format(name, phone)) Jack ==> 456 Dcab ==> 789 Sjoerd ==> 1238)如果有個很長的格式化字符串,不想分割它可以傳入一個字典,用中括號( [] )訪問它的鍵;
>>> table = {'Sjoerd': 123, 'Jack': 456, 'Dcab': 789789789789} >>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; ' 'Dcab: {0[Dcab]:d}'.format(table)) Jack: 456; Sjoerd: 123; Dcab: 789789789789還可以用**標志將這個字典以關鍵字參數的方式傳入。
>>> table = {'Sjoerd': 123, 'Jack': 456, 'Dcab': 789789789789} >>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table)) Jack: 456; Sjoerd: 123; Dcab: 7897897897892 讀取鍵盤輸入
Python 提供了 input() 內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤,input() 可以接收一個 Python 表達式作為輸入,并將運算結果返回。示例如下:
>>> str = input("請輸入:"); >>> print ("輸入的內容是: ", str) 請輸入:Hello Python 你輸入的內容是: Hello Python3 文件讀寫
函數 open() 返回文件對象,通常的用法需要兩個參數:open(filename, mode)。
第一個參數 filename 是要訪問的文件名,第二個參數 mode 是描述如何使用該文件(可取值主要包括:‘r’ 讀取文件;‘w’ 只是寫入文件,已經存在的同名文件將被刪掉;‘a’ 打開文件進行追加,自動添加到末尾;‘r+’ 打開文件進行讀取和寫入;‘rb+’ 以二進制格式打開一個文件用于讀寫…),mode 參數是可選的,默認為 ‘r’。
3.1 文件對象方法
- read()
要讀取文件內容,調用 read(size) ,size為可選參數。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> f = open('tmp.txt', 'r') >>> str = f.read(5) >>> print(str) >>> f.close() Helloreadline()
讀取一行,換行符為 \n 。
>>> f = open('tmp.txt', 'r') >>> str = f.readline() >>> print(str) >>> f.close()- readlines()
讀取文件中包含的所有行,可設置可選參數 size 。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> f = open('tmp.txt', 'r') >>> str = f.readlines(1) >>> print(str) >>> f.close() ['Hello Python']- write()
write(string) 將 string 的內容寫入文件。
>>> f = open('tmp.txt', 'w') >>> num = f.write('Hello Python') >>> print(num) >>> f.close() 12- seek()
seek(offset, from_what) 改變文件當前的位置。offset 移動距離;from_what 起始位置,0 表示開頭,1 表示當前位置,2 表示結尾,默認值為 0 ,即開頭。
>>> f = open('tmp.txt', 'rb+') >>> f.write(b'0123456789abcdef') # 移動到文件的第 6 個字節 >>> f.seek(5) >>> print(f.read()) b'56789abcdef'- tell()
tell() 返回文件對象當前所處的位置,它是從文件開頭開始算起的字節數。
>>> f = open('tmp.txt', 'r') >>> f.seek(5) >>> print(f.tell()) 5- close()
當你處理完一個文件后,調用 close() 來關閉文件并釋放系統的資源。也可以使用 with 關鍵字處理文件對象,實現文件用完后自動關閉。
>>> with open('tmp.txt', 'r') as f: ... read_data = f.read() >>> print(f.closed) True3.2 操作 json 格式數據
-
json.dumps(obj) 序列化,obj 轉換為 json 格式的字符串;
-
json.dump(obj, fp) 序列化,將 obj 轉換為 json 格式的字符串,將字符串寫入文件;
-
json.loads(str) 反序列化,將 json 格式的字符串反序列化為一個 Python 對象;
-
json.load(fp) 反序列化,從文件中讀取含 json 格式的數據,將之反序列化為一個 Python 對象。
總結
本節給大家介紹了 Python 輸入輸出,對 Python 工程師提供了支撐,能夠根據實際情況選擇合適的輸入輸出方式。
總結
以上是生活随笔為你收集整理的Python 输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中 ‘==‘ 与‘is‘ 以
- 下一篇: Python 错误和异常