1. 鍵盤輸入
- Python提供了 input() 內置函數從標准輸入讀入一行文本,默認的標准輸入是鍵盤。input 可以接收一個 Python 表達式作為輸入,並將運算結果返回。
str = input("請輸入:");
print ("你輸入的內容是: ", str)
>>>
請輸入:菜鳥教程
你輸入的內容是: 菜鳥教程
2. 讀寫文件
-
open() 將會返回一個 file 對象,基本語法格式如下:
-
open(filename, mode)
- filename:包含了你要訪問的文件名稱的字符串值。
- mode:決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。
- f.read() 為了讀取一個文件的內容,調用 f.read(size), 這將讀取一定數目的數據, 然后作為字符串或字節對象返回。size 是一個可選的數字類型的參數。當 size 被忽略了或者為負, 那么該文件的所有內容都將被讀取並且返回。
>>> f = open('test.txt', 'r')
>>> a = f.read()
>>> a
'1 2 3\n4 5 6\nHello, seniusen!\n'
- f.readline() 會從文件中讀取單獨的一行。換行符為 '\n'。f.readline() 如果返回一個空字符串, 說明已經已經讀取到最后一行。
>>> f = open('test.txt', 'r')
>>> b = f.readline()
>>> b
'1 2 3\n'
>>> b[0]
'1'
>>> b[1]
' '
>>> b[2]
'2'
>>> b = f.readline()
>>> b
'4 5 6\n'
>>> b = f.readline()
>>> b
'Hello, seniusen!\n'
>>> b = f.readline()
>>> b
''
- f.readlines() 將返回該文件中包含的所有行。如果設置可選參數 sizehint, 則讀取指定長度的字節, 並且將這些字節按行分割。
>>> f = open('test.txt', 'r')
>>> for i in f.readlines():
... print(i)
...
1 2 3
4 5 6
Hello, seniusen!
- 另一種方式是迭代一個文件對象然后讀取每行。
>>> f = open('test.txt', 'r')
>>> for line in f:
... print(line)
...
1 2 3
4 5 6
Hello, seniusen!
-
f.write(string) 將 string 寫入到文件中, 然后返回寫入的字符數。如果要寫入一些不是字符串的東西, 那么將需要先進行轉換。
-
f.tell() 返回文件對象當前所處的位置, 它是從文件開頭開始算起的字節數。
-
如果要改變文件當前的位置, 可以使用 f.seek(offset, from_what) 函數。from_what 的值, 如果是 0 表示開頭, 如果是 1 表示當前位置, 2 表示文件的結尾,from_what 值為默認為0,即文件開頭。
- seek(x, 0) :從起始位置即文件首行首字符開始移動 x 個字符
- seek(x, 1) :表示從當前位置往后移動 x 個字符
- seek(-x, 2):表示從文件的結尾往前移動 x 個字符
-
當你處理完一個文件后, 調用 f.close() 來關閉文件並釋放系統的資源。
-
當處理一個文件對象時, 使用 with 關鍵字是非常好的方式。在結束后, 它會幫你正確的關閉文件。
>>> f = open('test.txt', 'r')
>>> f.tell()
0
>>> b = f.readline()
>>> f.tell()
6
>>> f.seek(2, 0)
2
>>> f.read(1)
'2'
>>> f.close()
>>> f
<_io.TextIOWrapper name='test.txt' mode='r' encoding='UTF-8'>
>>> f.closed
True
>>> with open('test.txt') as f:
... print(f.readline())
...
1 2 3
>>> f.closed
True
參考資料 菜鳥教程
獲取更多精彩,請關注「seniusen」!