中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3 對文件操作

發布時間:2020-07-26 00:12:26 來源:網絡 閱讀:738 作者:低調的男孩 欄目:系統運維

計算機文件

在計算機系統中,以硬盤為載體存儲在計算機上的信息集合稱為文件。文件可以是文本文檔、圖片、聲音、程序等多種類型。在編程時經常要對文件進行讀寫等操作, 從程序員的視角可以把文件理解為是連續的字節序列,進行數據傳輸需要使用字節流, 字節流可以是由單個字節或大塊數據組成。文件類型通常分為文本文件和二進制文件。

文件操作

在 Python中對文件進行操作分為3個步驟,首先要打開文件,然后是對文件進行讀寫操作,最后需要關閉文件。

打開文件---open函數

你必須先用Python內置的open()函數打開一個文件,創建一個file對象,相關的方法才可以調用它進行讀寫。

語法:

file object = open(file_name [, access_mode][, buffering])

各個參數的細節如下:

file_name:file_name變量是一個包含了你要訪問的文件名稱的字符串值。
access_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。

buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設為大于1的整數,表明了這就是的寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統默認。

不同模式打開文件的完全列表:

Python3 對文件操作
Python3 對文件操作

模式圖如下:

Python3 對文件操作
Python3 對文件操作

File對象的屬性

一個文件被打開后,你有一個file對象,你可以得到有關該文件的各種信息。
以下是和file對象相關的所有屬性的列表:

Python3 對文件操作

關閉文件---close()方法

File 對象的 close()方法刷新緩沖區里任何還沒寫入的信息,并關閉該文件,這之后便不能再進行寫入。
當一個文件對象的引用被重新指定給另一個文件時,Python 會關閉之前的文件。用 close()方法關閉文件是一個很好的習慣。
語法:
fileObject.close()

例子:

python代碼如下:
f = open('練習.txt','w',encoding='utf-8') #寫文件
...
f.close()
f = open('練習.txt','r',encoding='utf-8') #讀文件
...
f.close()

向文件寫數據--- write()方法

write()方法可將任何字符串寫入一個打開的文件。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
write()方法不會在字符串的結尾添加換行符('\n'):
語法:
fileObject.write(string)

例子:

python代碼如下:
f = open('練習1.txt','w',encoding='utf-8')
f.write("我是中國人\n")
f.write("我愛自己的祖國\n")
f.write("我愛北京天安門\n")

輸出結果:
Python3 對文件操作

從文件讀數據

file.read()方法從一個打開的文件中讀取一個字符串。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
語法:
file.read([count])

例子:

原文件(練習.txt)

Python3 對文件操作

讀文件代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.read(1))
print(f.read(10))

輸出結果:
Python3 對文件操作
Python3 對文件操作

使用file.readline()可以讀取一行數據,同樣是返回一個字符串

例子:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.readline())

輸出結果:

Python3 對文件操作

file.readline()括號里面加數字,表示讀取字符串個數

例子:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.readline(1))

輸出結果:
Python3 對文件操作

file.readlines剩余行數據,返回的是一個字符串列表

例子:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.readlines())

輸出結果如下:

Python3 對文件操作

file.readlines()括號里面加數字,表示讀取字符串個數,還有當前行剩余的也讀出來

例子1:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.readlines(1)) #表示打印第一個字符串所在的那一行

輸出結果如下:
Python3 對文件操作

例子2:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.readlines(7)) #表示打印第7個字符串所在的那一行及前面的所有行

輸出結果如下:

Python3 對文件操作

注意:read()讀取的方式是讀取所有數據,放到內存中,這樣很占內存,而且效率低小,這里推薦文件迭代器

文件迭代器

從 Python2.2開始,引進了迭代器和文件迭代,使文件操作更加高效,不需
調用 read()方法。簡單說,迭代就是在for循環中讀取每一行數據,示例代碼如下:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
for line in f.readlines():

 print(line.strip())

輸出結果:
Python3 對文件操作

注意事項:

以寫方式打開文件時,不支持讀操作。但是還有其他幾種模式存在,使用 r+、w+、或a+ 方式打開文件,可以同時進行讀寫操作。
r+ 表示不清除原文件內容,讀寫方式打開,而新添加的數據在文件尾部
w+ 表示清除原文件內容,寫讀方式打開,讀不到原文件的內容。
a+表示把文件指針移到文件末尾,在文件末尾可以繼續寫數據,讀數據不受影響。

文件定位(文件指針)

tell()方法告訴你文件內的當前位置, 換句話說,下一次的讀寫會發生在文件開頭這么多字節之后。

seek(offset [,from])方法改變當前文件的位置。
Offset變量表示要移動的字節數。
From變量指定開始移動字節的參考位置。

如果from被設為0,這意味著將文件的開頭作為移動字節的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那么該文件的末尾將作為參考位置。

例子:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
print(f.readline()) #打印的一行
f.seek(0) #指針返回原點
print(f.tell()) #獲取當前指針位置
print(f.readline()) #再打印一行

輸出結果如下:
Python3 對文件操作

修改文件

1.把文件都加載到內存里面,在修改,如vim修改文件
備注:這種方式會覆蓋掉原文件,而且不適合修改大文件,太消耗系統內存了,不推薦!
2.讀取原文件,在修改相應文件,生成到新文件中。(推薦使用)

例子:

python代碼如下:
f = open('練習.txt','r',encoding='utf-8')
f_new =open('練習2.txt','w',encoding='utf-8')
for line in f:

if "宋代:孫洙" in line:

line = line.replace("宋代:孫洙","宋代:詞人") #將"孫洙"替換成"詞人”
f_new.write(line)
f.close()
f_new.close()

輸出結果如下:
Python3 對文件操作

with使用

有一些任務,可能事先需要設置,事后做清理工作。對于這種場景,Python的with語句提供了一種非常方便的處理方式。一個很好的例子是文件處理,你需要獲取一個文件句柄,從文件中讀取數據,然后關閉文件句柄。

例子:

python代碼如下:
with open('練習.txt', 'r', encoding='utf-8') as f:

for line in f.readlines():

print(line.strip())

輸出結果如下:
Python3 對文件操作

file 對象內建方法:

file 對象使用 open 函數來創建,下表列出了 file 對象常用的函數:
Python3 對文件操作
Python3 對文件操作

總結:

1.本博客參考了菜鳥基礎和自己動手操作寫出的。
2.python2 和python3 是不一樣,這里是python3操作文件方法。
3.python操作文件是一種很常用的方法,要經常動手操作,才能掌握知識點!
4.python是很注意縮進格式的語言,這里受博客排版影響,可能格式出現錯誤,內容僅供參考,不建議復制,自己多敲幾遍就明白了!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

射洪县| 扶沟县| 蛟河市| 乌审旗| 阳江市| 陆川县| 湄潭县| 许昌县| 武汉市| 藁城市| 贵德县| 岗巴县| 兰溪市| 杂多县| 贡山| 广安市| 东宁县| 礼泉县| 珲春市| 高青县| 昭通市| 凉山| 平遥县| 公主岭市| 漳平市| 翁源县| 福泉市| 凤山市| 元谋县| 广东省| 白山市| 沽源县| 汉阴县| 黄梅县| 繁昌县| 广西| 廉江市| 巴彦淖尔市| 怀来县| 天水市| 南岸区|