文件的讀入
open() 函數(shù)
open(name, mode)
name:需要訪問(wèn)文件名稱的字符串值
mode:mode決定了打開(kāi)文件的模式
常用的打開(kāi)文件的模式
模式 | 描述 |
---|---|
r | 以只讀方式打開(kāi)文件娱两。文件的指針將會(huì)放在文件的開(kāi)頭桐经。這是默認(rèn)模式沉帮。 |
w | 打開(kāi)一個(gè)文件只用于寫入。如果該文件已存在則打開(kāi)文件赤炒,并從開(kāi)頭開(kāi)始編輯诵肛,即原有內(nèi)容會(huì)被刪除。如果該文件不存在迂苛,創(chuàng)建新文件斑粱。 |
a | 打開(kāi)一個(gè)文件用于追加弃揽。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾则北。也就是說(shuō)矿微,新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在尚揣,創(chuàng)建新文件進(jìn)行寫入涌矢。 |
r+ | 打開(kāi)一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開(kāi)頭快骗。 |
w+ | 打開(kāi)一個(gè)文件用于讀寫娜庇。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯方篮,即原有內(nèi)容會(huì)被刪除名秀。如果該文件不存在,創(chuàng)建新文件藕溅。 |
a+ | 打開(kāi)一個(gè)文件用于讀寫匕得。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾蜈垮。文件打開(kāi)時(shí)會(huì)是追加模式耗跛。如果該文件不存在裕照,創(chuàng)建新文件用于讀寫攒发。 |
讀取整個(gè)文件
新建一個(gè)文件调塌,命名為poem.txt
Who has seen the wind?
Neither I nor you;
But when the leaves hang trembling,
The wind is passing through.
在相同文件夾下創(chuàng)建一個(gè)py文件,命名為poem_reader.py
with open('poem.txt') as file_object:
contents = file_object.read()
print(contents.rstrip())
關(guān)鍵字with在不再需要訪問(wèn)文件后將其關(guān)閉
使用read()到達(dá)文件末尾時(shí)返回一個(gè)空字符從而顯示出來(lái)一個(gè)空行惠猿,用rstrip()可以刪除字符串末尾的空白
讀取文本文件時(shí)羔砾,Python將其中的所有文本都解讀為字符串。
如果需要讀取的文件和程序不在同一個(gè)文件夾偶妖,要寫出文件所在路徑姜凄。
file_path = 'D:\py\poem.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents.rstrip())
逐行讀取
file_path = 'D:\py\poem.txt'
with open(file_path) as file_object:
for line in file_object:
print(line.rstrip())
文件內(nèi)容的使用
file_path = 'D:\py\poem.txt'
with open(file_path) as file_object:
lines = file_object.readlines()
poem_string = ''
for line in lines:
poem_string += line.strip()
poem_string1 = poem_string[:22]
print(poem_string1)
print(len(poem_string1))
strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列,該方法只能刪除開(kāi)頭或是結(jié)尾的字符趾访,不能刪除中間部分的字符
文件的寫入
寫入空文件
可以創(chuàng)建新的py文件态秧,這里使用之前的poem_reader.py
filename = "poem.txt"
with open(filename,'w') as file_object:
file_object.write("Who has seen the wind?")
with open(filename, 'r') as file_object:
contents = file_object.read()
print(contents)
以寫入('w')模式打開(kāi)文件時(shí),如果指定的文件已經(jīng)存在扼鞋,Python將在返回文件對(duì)象前清空該文件申鱼。
寫入多行
filename = "poem.txt"
with open(filename,'w') as file_object:
file_object.write("Who has seen the wind?\n")
file_object.write("Neither I nor you;\n")
with open(filename, 'r') as file_object:
contents = file_object.read()
print(contents)
附加到文件
打開(kāi)文件時(shí)指定實(shí)參'a',將內(nèi)容附加到文件末尾云头,而不是覆蓋文件原來(lái)的內(nèi)容捐友。
filename = "poem.txt"
with open(filename,'a') as file_object:
file_object.write("But when the leaves hang trembling,\n")
file_object.write("The wind is passing through.\n")
with open(filename, 'r') as file_object:
contents = file_object.read()
print(contents)