日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python文件基本操作

發布時間:2025/4/16 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python文件基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python文件基本操作

1、文件對象的屬性

屬性描述
file.closed如果文件已被關閉返回true,否則返回false。
file.mode返回被打開文件的訪問模式。
file.name返回文件的名稱。
file.newlines未讀取到行分隔符時為 None , 只有一種行分隔符時為一個字符串, 當 文件有多種類型的行結束符時,則為一個包含所有當前所遇到的行結束 符的列表
file.encoding返回文件的編碼方式
file = open('allen.txt', 'w') print(file.name) print(file.mode) print(file.encoding) print(file.newlines)輸出結果: allen.txt w UTF-8 None

2、文件的打開

文件打開是通過內置函數open(),并返回一個文件對象,

file object = open(file_name [, access_mode][, buffering])
  • file_name: file_name變量是一個包含了你要訪問的文件名稱的字符串值。比如:‘hello.text’

  • access_mode:訪問文件的模式,只讀(r),寫入(w),追加(a)等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。

  • buffering:值為0,訪問文件時不寄存行。值為1,訪問文件時寄存行。值為大于1的正數表示指定寄存區緩沖大小。值為負數時表示寄存區緩沖大小為系統默認。

一表勝十文:

模式描述
r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式.
rb以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。一般用于非文本文件如圖片等。
r+以讀寫方式打開文件,文件的指針在文件的開頭
rb+以二進制格式打開一個文件可以用于讀寫,文件指針放在開頭。一般用于非文本文件如圖片等。
w以只寫方式打開文件,文件的指針在文件的開頭,如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb以二進制格式打開一個文件用于只寫,文件的指針在文件的開頭。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。
w+打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb+以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。
a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
ab以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。r+
a+打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
ab+以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。

一圖勝十表:

模式rr+ww+aa+
??????????
???????????
創建??????????
覆蓋????????
指針在開始??????????
指針在結尾????????

3、文件輸入

文件的輸入和輸出是相對應屏幕來說,從讀取文件內容到屏幕上叫輸入,將屏幕上內容寫到文件內叫輸出

3.1 read(size):

用于從文件讀取指定的字節數,size:從文件中讀取的字節數。如果size未給定或為負則讀取所有
allen.txt文件內容

line1 line2 line3 file = open('allen.txt', 'r') cont1 = file.read(2) cont2 = file.read(10) cont3 = file.read(15) print('cont1=%s' % cont1) print('cont2=%s' % cont2) print('cont3=%s' % cont3) file.close()結果: cont1=licont2=ne1 line2cont3=line3

從結果上看,使用同一個file讀取多次時,指針的位置從上一次讀取的最后位置的下一個位置開始讀取的。

3.2 readline()

用于從文件讀取整行,包括 "\n" 字符。如果指定了一個非負數的參數,則返回指定大小的字節數,包括 "\n" 字符。

fo = open("allen.txt", "r+") print("文件名為: ", fo.name)line = fo.readline() print("讀取第一行 %s" % line)line = fo.readline(5) print("讀取的字符串為: %s" % line) fo.close()

結果:

文件名為: allen.txt 讀取第一行 line1 讀取的字符串為: line2

3.3 readlines()

用于讀取剩余未讀取的所有行(直到結束符 EOF)并返回列表,而不是所有行,如果碰到結束符 EOF 則返回空字符串。

fo = open("allen.txt", "r+") print("文件名為: ", fo.name) line = fo.readlines(1) print("讀取第一行 %s" % line) line = fo.readlines() print("讀取剩余行: %s" % line) fo.close()

結果:

文件名為: allen.txt 讀取第一行 ['line1\n'] 讀取剩余行: ['line2\n', 'line3']

使用for循環
例子1:

fo = open('allen.txt', 'r') for line in fo.readlines():print(line) fo.closed

結果:

line1line2line3

例子2:

fo = open('allen.txt', 'r') for line in fo.readlines():print(line.strip()) fo.closed

再來看加上strip()后的結果

line1 line2 line3

從以上兩個例子中可以看出,readlines()讀取的時候將換行符\n也一塊讀取出來,需要我們自己去掉,其實read()、readline()也是一樣

4、文件輸出

4.1 write()

向文件中寫入指定字符串。

import osfo = open('allen.txt', 'w+') while True:line = input('input content') # input不會保留換行符,需要自己加上系統的換行符if line != '.':fo.write('%s%s' % (line, os.linesep))else:break for line in fo.readlines():print(line) fo.close()

如果我們分別輸入3行:

line4 line5 line6

本來我們“allen.txt”文件中有以下三行:

line1 line2 line3

加上我們輸入的3行應該是

line1 line2 line3 line4 line5 line6

運行結果:

line4 line5 line6

但結果并不是啊,原因是什么呢?還有為什么我們要加上os.linesep()

需要注意點:
1、以‘w/w+’模式打開的文件,如果文件存在則會覆蓋,如果文件不存在則會新建。
2、write()和read()一樣并不會操作換行符,需要使用os模塊下os.linesep()加上換行符,否則只會在一行上寫

4.2 writelines()

向文件中寫入一序列的字符串。
這一序列字符串可以是由迭代對象產生的,如一個字符串列表。
換行需要制定換行符 \n。

fo = open('allen.txt', 'w+') while True:line = input('input content') # input不會保留換行符,需要自己加上系統的換行符if line != '.':fo.writeline('%s%s' % (line, os.linesep))else:break for line in fo.readlines():print(line) fo.close()

我們輸入3行

line1 line2 line3

打開文件查看結果:

line1 line2 line3

5、文件定位移動

5.1 tell()

例子1:

fo = open('allen.txt', 'r') for line in fo.readline():print('本行內容:%s,指針所在的位置:%d' % (line, fo.tell())) fo.close() 本行內容:line1,指針所在的位置:6 本行內容:line2,指針所在的位置:12 本行內容:line3,指針所在的位置:18

例子2:

fo = open('allen.txt', 'r') for line in fo.readlines():print('本行內容:%s,指針所在的位置:%d' % (line, fo.tell())) fo.close() 本行內容:line1,指針所在的位置:18 本行內容:line2,指針所在的位置:18 本行內容:line3,指針所在的位置:18

從例子1和2中我們可以看出readline()讀取一行,指針的位置移動一行,readlines()是一下子讀取到尾部。

5.2 seek()

seek(offset[, whence]) :沒有返回值
offset -- 偏移量,也就是代表需要移動字節數
whence:可選,默認值為 0。表示要從哪個位置開始偏移;0代表從文件開頭開始算起,1代表從當前位置開始算起,2代表從文件末尾算起

fo = open("allen.txt", "r+") line = fo.readline() print("第一次讀取的數據為:%s所在的位置為:%d " % (line, fo.tell())) # 重新設置文件讀取指針到開頭 fo.seek(0, 0) line = fo.readline() print("第二次讀取的數據為:%s所在的位置為:%d " % (line, fo.tell())) fo.closed 第一次讀取的數據為:line1所在的位置為:6 第二次讀取的數據為:line1所在的位置為:6

6、文件迭代

file對象是一個可迭代的對象,可以使用for循環進行迭代

fo = open("allen.txt", "r") for content in fo:print(content) fo.close() line1line2line3

內功深厚的同學,應該發現了一個問題,上邊所有的例子我們再關閉文件的時候都是直接close(),試想一下,萬一中間出現異常了,close就執行不了,為了保證無論是否出錯都能正確地關閉文件,我們可以使用 try ... finally :

try:f = open('allen.txt', 'r')print f.read() finally:if f:f.close()

但是每次都這么寫實在太繁瑣,所以,Python 引入了 with 語句來自動幫我們調用 close() 方法:

with open('allen.txt', 'r') as f:f.read()

是不是很簡潔,有木有

轉載于:https://www.cnblogs.com/suxianglun/p/9052718.html

總結

以上是生活随笔為你收集整理的Python文件基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品视频播放 | 日韩va亚洲va欧美va久久 | 中文字幕人妻一区二区三区在线视频 | 久久国内精品视频 | 精品国产乱子伦一区二区 | 国产一区2 | 精品成人无码久久久久久 | 免费大片在线观看www | 国产裸体视频网站 | 精品1区2区 | 毛片综合 | 国产专区一区二区三区 | 偷偷操网站 | 狠狠2020| 国产69精品久久久 | 山村淫强伦寡妇 | 精品无码国产一区二区三区51安 | 香蕉影院在线 | 久久国产精品一区二区 | 内裤摩擦1v1h| 丰满肉嫩西川结衣av | 日韩色吧 | 精品人妻少妇AV无码专区 | 亚洲精品福利网站 | 四虎8848精品成人免费网站 | 欧美性受xxxx白人性爽 | 亚洲一区二区视频在线 | 人妻互换一区二区三区四区五区 | 欧美一区二区三区在线看 | 日日干日日插 | 中文字幕高清av | 国产亚洲制服欧洲高清一区 | 日本毛片在线 | 日韩乱码人妻无码中文字幕久久 | 亚洲欧美日韩在线播放 | 热99在线 | 日本视频免费看 | 91国内精品久久久 | 国产精品视频久久久久 | 夜色资源网 | 国产乱码精品一品二品 | 91免费黄色 | 高清国产mv在线观看 | 蜜桃色一区二区三区 | 污污在线看 | 国产a精品| 欧美精品免费视频 | 拔萝卜91| 国产精品成人午夜视频 | 国产精品三级在线 | 3d动漫啪啪精品一区二区中文字幕 | 天堂草在线观看 | 无码专区久久综合久中文字幕 | 国产乱女淫av麻豆国产 | 日韩精品你懂的 | 中文字字幕一区二区三区四区五区 | 国产精品久久久久久久久久久不卡 | 亚洲天堂精品视频 | 日本一道本在线 | 艳情五月| va婷婷在线免费观看 | 国产精品久久久久影院色老大 | 日韩一级片网址 | 亚洲综合在线成人 | 久久国产经典视频 | 欧美五月 | 99在线成人精品视频 | 国产精品黄色片 | 欧美在线观看一区二区 | 我和我的太阳泰剧在线观看泰剧 | 精品人妻无码专区视频 | 日韩大片免费在线观看 | 不许穿内裤随时挨c调教h苏绵 | 深夜的私人秘书 | 日韩精品在线观看一区二区 | 日本欧美韩国国产精品 | 韩国伦理片在线看 | 华人永久免费 | 亚洲大成色 | 亚洲精品合集 | 国产高清亚洲 | 日本激情视频在线 | 性喷潮久久久久久久久 | 国产精品扒开腿做爽爽爽视频 | 乱色欧美 | 可以在线观看的av网站 | 在线观看国产三级 | 娇妻之欲海泛舟无弹窗笔趣阁 | 亚洲黄色一区二区三区 | 成人免费网址 | 国产麻豆一区二区 | 亚洲女女做受ⅹxx高潮 | 免费高清视频在线观看 | 国产99久久久国产精品免费看 | 中文字幕在线视频免费播放 | 亚洲一二三视频 | 黄色a级网站 | 久久久香蕉视频 | 久久视频网 |