亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

python中文件操作的方法有哪些

發布時間:2021-08-12 14:17:30 來源:億速云 閱讀:230 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python中文件操作的方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1.打開文件:

f=open(r'E:\PythonProjects\test7\a.txt',mode='rt',encoding='utf-8')
以上三個單引號內分別表示:要打開的文件的路徑,mode為文件打開方式具體介紹在下文,encoding為文件的字符編碼,一般默認為utf-8

2.讀寫文件:

data=f.read()  # 讀文件

f.write()    # 寫文件

3.關閉文件:

f.close()

4.為了簡便,一般采用上下文的方法進行文件操作,可不用關閉文件

 with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read()
 print(data)
with open('a.txt',mode='wt',encoding='utf-8') as f:
 f.write('hello world')

5.控制文件讀寫的操作:

r:(默認模式):只讀:以該模式打開文件時,若文件不存在則報錯,若文件存在,則文件指針在文件開頭,即從文件開頭開始讀文件
w:只寫:以該模式打開文件時,若文件不存在則創建一個文件,如文件存在,則清空文件內容,文件指針移到開頭
a:追加寫:以該模式打開文件時,若文件不存在則創建一個文件,如文件存在,則將文件指針移到文件末尾,在文件末尾寫入新的內容

6.控制文件讀寫內容的模式:(t 和 b都不能單獨使用,必須與r,w,a結合使用)

t:(默認):無論讀寫都是以字符為單位,只能識別文本文件,必須要制定encoding
b:無論讀寫都是以字節為單位,可以識別所有文件,一定不能指定encoding

7.文件的拷貝

with open ('a.txt',mode='rb') as af,\
 open('b.txt',mode='wb') as bf:
 data=af.read
 f.write(data)

執行程序后,打開文件,即可發現文件已成功拷貝,這里使用 b 而不是用 t 模式,是因為文件有多種格式

8.文件的修改:

文件的修改是在硬盤上實現文件的覆蓋,相當于一個新的文件以舊的文件名來命名的; 文件的修改有倆種方式,分別適用于不同的情景

方式一(適用于容量小的文件):這種方式的原理是:創建一個新的文件,將舊文件的內容拷貝到新的文件中;這樣內存里就存在倆個文件,故不適用于容量大的文件,具體代碼見下方 View

with open('a.txt',mode='rt',encoding='utf-8') as f:
 data=f.read()
 data_new=data.replace('yang', 'yv')
with open('b.txt',mode='wt',encoding='utf-8')as p:
 p.write(data_new)

方式二(適用于容量大的文件):此方式的原理為:讀取舊文件的一行內容,修改后寫到臨時文件中,循環往復直到寫完,然后將源文件刪除,將臨時文件命名為源文件名.這種方式在內存中只存在2行文件,節省內存,可用于大文件

import os
with open('b.txt',mode='rt',encoding='utf-8') as f,\
 open('.b.txt.swap',mode='wt',encoding='utf-8') as p:
 for line in f:
 p.write(line.replace('yv','yang')) 
 # 調用replace方法,將源文件中的'yv',換成'yang'
os.remove('b.txt')
os.rename('.b.txt.swap','b.txt')

9. 文件的階段:truncate(n)

將文件中n個字節后內容全刪了,當 n 不存在時,即刪除文件全部內容

10.文件內指針的移動

f.seek():  指針的移動是以字節為單位的
seek 有三種模式:

0:(默認模式) 指針在文件開頭,只有在 0 模式可以在 t 模式下用,也可以在 b 模式下用,而 1 ,2 模式只能在 b 模式下使用
1:指針在當前位置
2:指針在文件末尾

以下為具體事例:

# 0
with open('a.txt',mode='rt',encoding='utf-8')as f:
 f.seek(3,0)
 print(f.tell()) # 指針當前位置
 print(f.read()) # 從指針后讀出所有內容

# 1 參照指針當前位置
 with open('a.txt',mode='rb')as f:
 f.read(2)
 f.seek(4,1)
 print(f.tell())
 print(f.read().decode('utf-8'))

# 2 參照文件末尾
 with open('a.txt',mode='rb')as f:
 f.seek(-5,2)
 print(f.tell())
 print(f.read().decode('utf-8'))

當 seek處于 2 模式時,可以將文件中新加入的內容打印出來,具體代碼如下:

# 另一個文件進行寫操作,寫的代碼如下:

with open('a.txt',mode='at',encoding='utf-8')as f:
 f.write('hello world\n')


# 每在文件中寫入新的內容,都打印出來,以下代碼執行打印操作:
import time
with open('a.txt',mode='rb')as f:
 f.seek(0,2)
 while True:
 line=f.readline() # readline 可以讀取沒有內容的部分
 # print(line.decode('utf-8'))
 if len(line)==0:
 time.sleep(0.1)
 else:
 print(line.decode('utf-8'))

關于“python中文件操作的方法有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

灵山县| 犍为县| 襄垣县| 高碑店市| 赤峰市| 天长市| 达拉特旗| 北票市| 南投市| 惠州市| 天峨县| 锡林郭勒盟| 朝阳区| 沐川县| 宁德市| 正宁县| 依安县| 陆河县| 习水县| 手机| 大城县| 玉田县| 新巴尔虎左旗| 榆林市| 左贡县| 普安县| 宜城市| 麻城市| 农安县| 宝坻区| 普宁市| 衡阳县| 铜鼓县| 滦平县| 陇西县| 三明市| 安图县| 永仁县| 庆云县| 武安市| 临沭县|