Python的文件操作主要通過open()函數進行,open()函數是個內置 (built-in) 函數
一般用法如下:
f = open(文件名,模式)
文件名:文件的路徑和名字,如果在當前文件夾下,直接寫文件名就可以了
模式:一般有如下幾種:
Character |
Meaning |
'r' |
只讀模式 |
'w' |
只寫模式,會將原來的內容擦掉,從頭開始寫入 |
'x' |
創建文件,如果文件已存在,則創建失敗 |
'a' |
繼續在文件的末尾寫入 |
'b' |
二進制模式 |
'+' |
可讀可寫 |
這裏的’+’模式不是很好理解,
官方文檔的解釋是這樣的:opena disk file for updating (reading and writing)
個人理解如下:
其實平時主要有兩種用法嘛,r+ ,w+
自己親自測試了一下,兩者的區別如下:
r+:從開始直接寫入文件,也就是從文件頭開始覆蓋文件,比如原來文件裏是abcdefg,當用r+模式寫入ABCD時,文件變成ABCDefg了
w+:先將文件清空再寫入,比如比如原來文件裏是abcdefg,當用w+模式寫入ABCD時,文件變成ABCD了
示例如下
__author__ = 'MrChen'
#python基本文件操作
myFile = open('靜夜思.txt', 'w')
myFile.write('靜夜思\n窗前明月光,\n疑是地上霜。\n')
myFile.close()
myFile = open('靜夜思.txt', 'a')
myFile.write('舉頭望明月,\n我叫郭德綱。\n')
myFile.close()
myFile = open('靜夜思.txt', 'r')
for line in myFile.readlines():
print(line, end='')
myFile.seek(0)
print(len(myFile.readlines()))
myFile.close()
運行結果如下:
靜夜思
窗前明月光,
疑是地上霜。
舉頭望明月,
我叫郭德綱。
5
其中的\n是換行操作,如果不知道自己機器的換行符是啥,可以在IDLE裏這樣看,其實使用’\n’一樣可以達到換行的效果
>>> Import os
>>> os.linesep
'\r\n'
print(line, end='')
如果不加end=''那麼輸出的中間會空一行,因爲print默認在最後是存在一個換行符的,去掉最後的換行符只要將換行符換成空字符串就可以啦
myFile.seek(0)
將文件指針指向文件的開頭位置,因爲已經讀了一遍文件了,所以文件指針指到文件的末尾,如果還需要重新讀取一遍文件,需要將文件指針指向文件頭
myFile.readlines()
返回的是一個列表,本例中可以看到該列表有5項,每行都是列表中的一項