Python中對文件的操作

一.操作文件的函數/方法

在python中要操作文件需要記住的1個函數和3個方法
python中一切皆對象
open :打開文件,並且返回文件操作對象
read :將文件內容讀取到內存
write :將指定內容寫入文件
close :關閉文件
open函數負責打開文件,賓且返回文件對象
read/write/close三個方法都需要通過文件對象來調用

read方法–讀取文件
open函數的第一個參數是要打開的文件名(文件名區分大小寫)
如果文件存在,返回文件操作對象
如果文件不存在,會拋出異常
read方法可以一次性讀入並返回文件的所有內容
close方法負責關閉文件

“”“

# 如果忘記關閉文件,會造成系統消耗,而且會影響到後續對文件的訪問
# 1.打開文件
file = open('REDME')

# 2.操作文件 讀/寫
# read方法:讀取文件內容(一次性返回文件的所有內容)
text = file.read()
print text

# 3.關閉文件
# close方法:負責關閉文件
file.close()

# 在開發中,通常會先編寫打開和關閉的代碼

文件指針:
文件指針標記從哪個位置開始讀取數據
第一次打開文件時,通常文件指針會指向文件的開始位置
當執行了read方法後,文件指針會移動到讀取內容的末尾

"""
# 1.打開文件
file = open('REDME')

# 2.操作文件 讀/寫
# read方法:讀取文件內容(一次性返回文件的所有內容)
text = file.read()
print text

print '*' * 50

# 第一次讀取的時候,文件指針移動到了文件的末尾
# 再次調用不會讀取到任何內容

text = file.read()
print text

# 3.關閉文件
# close方法:負責關閉文件
file.close()

示例一

以寫的方式打開文件,如果文件存在會被覆蓋,如果文件不存在,創建新文件

# 1.打開文件
file = open('/home/kiosk/file')

# 2.操作文件 讀/寫
# read方法:讀取文件內容(一次性返回文件的所有內容)
text = file.read()
print text

# 打印輸入內容的長度
print type(text)
print len(text)

print '*' * 50
text = file.read()
print text
print len(text)

# 3.關閉文件
# close方法:負責關閉文件
file.close()

以追加方式打開文件
如果該文件存在,文件指針會放在文件的末尾
如果文件不存在,創建文件並寫入

# 1.打開文件
file = open('REDME','a')
# 2.寫入文件
file.write('linux')
# 3.關閉文件
file.close()

按行讀取文件
read方法默認會把文件的所有內容一次性讀到內存
如果文件太大,對內存的佔用會非常嚴重
readline方法:
readline方法可以一次性讀取一行內容
方法執行後,會把文件指針移動到下一行,準備再次讀取

"""
# 讀取大文件的正確姿勢

file = open('REDME')
# 爲什麼要寫成死循環:因爲我們不知道要讀取的文件有多少行
while True:
    text = file.readline()
    # 如果文件指針到文件的最後一行,那麼就讀不到內容了
    if not text:
        break
    # 每讀取一個行,末尾都已經有一個\n
    print text
file.close()
# 1.打開文件
# 源文件以只讀的方式打開
file_read = open('REDME')
# 目標文件以寫的方式打開
file_write = open('README_COPY','w')

# 從源文件中讀取內容
text = file_read.read()
# 將讀取到的內容寫到目標文件中
file_write.write(text)

# 關閉文件
file_read.close()
file_write.close()
# 1.打開文件
# 源文件以只讀的方式打開
file_read = open('REDME')
# 目標文件以寫的方式打開
file_write = open('README_COPY','w')

# 從源文件中讀取內容
text = file_read.read()
# 將讀取到的內容寫到目標文件中
file_write.write(text)

# 關閉文件
file_read.close()
file_write.close()
# 1.打開文件
file_read = open('REDME')
file_write = open('README_COPY','w')

# 讀寫
while True:
    text = file_read.readline()
    if not text:
        break
    file_write.write(text)

# 關閉
file_read.close()
file_write.close()

關鍵字with在不需要訪問文件後將其關閉,在這個程序中,
我們調用了open(),但沒有調用close();你也可以調用open()和close來打開
和關閉文件,但這樣做時,如果程序存在bug,導致close()語句沒有執行,
文件將不會關閉,未妥善地關閉文件可能會導致數據丟失或受損,
如果在程序中過早地調用close(),
你會發現需要使用文件時它已經關閉(無法訪問),
這會導致更多地錯誤,你並非在任何情況下都能輕鬆地確定關閉文件地恰當時機
通過使用with結構,可讓python去確定,
你只管打開文件,並在需要時使用它,
python會在合適的時候自動將其關閉

"""
with open('pi_digits') as file_object:
    contents = file_object.read()
    print contents
"""
filename = 'pi_digits'
with open(filename) as file_object:
    for line in file_object:
        print line
filename = 'pi_digits'
with open(filename) as file_object:
    lines = file_object.readline()
for line in lines:
    print line
filename = 'linux'
with open(filename,'w') as file_object:
    file_object.write('I love python.\n')
    file_object.write('I love linux.')
filename = 'linux'
with open(filename,'a') as file_object:
    file_object.write('I love python.\n')
    file_object.write('I love linux.')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章