python 檔案操作

2021-10-01 13:08:18 字數 3772 閱讀 2386

檔案的目的就是把資料存起來(持久化), 而不必每次都重新生成.

1-檔案的基本操作

# w 寫入模式  r 讀取模式

f =open

('123.txt'

,'w'

)

# 新建乙個檔案,檔名為:123.txt

f =open

('123.txt'

,'w'

)# 關閉這個檔案

f.close(

)

with

open

("123.txt"

,"w"

)as f:

pass

# 執行完縮排**, 會自動關閉檔案

訪問模式					   		說明

r 只用於讀取, 預設模式。檔案不存在,會報錯。

w 只用於寫入。檔案存在則先清空內容, 檔案不存在,建立新檔案。

a 只用於寫入。檔案存在則追加內容, 檔案不存在,建立新檔案。

r+ 用於讀寫。檔案不存在,會報錯。

w+ 用於讀寫。檔案存在則先清空內容, 檔案不存在,建立新檔案。

a+ 用於讀寫。檔案存在則追加內容, 檔案不存在,建立新檔案。

rb 二進位制格式的唯讀操作。

wb 二進位制格式的只寫操作。

ab 二進位制格式的追加操作。

# read() 將所有的內容全部讀取出來

with

open

('123.txt'

)as f:

content = f.read(

)print

(content)

# read(n) 指定讀取的字元數

with

open

('123.txt'

)as f:

content = f.read(4)

print

(content)

# readline() 每次讀一行

with

open

('123.txt'

)as f:

while

true

: content = f.readline(

)# hello\n python

iflen

(content)==0

:break

print

(content, end="")

# print()會預設換行(會在結尾自動新增\n), 可以通過end引數手動設定結尾的內容

# readlines() 讀取出所有內容 每行乙個元素,返回列表

with

open

('123.txt'

)as f:

content = f.readlines(

)print

(content)

# open() 返回乙個 可迭代的檔案物件

with

open

('123.txt'

)as f:

try:

for line in f:

print

(line)

finally

: f.close(

)# 無**件大小, 迭代器會一行一行讀入,不會佔滿記憶體

for line in

open

(file_path,

"r")

:print

(line)

有些時候,需要對檔案進行重新命名、刪除等一些操作,python的os模組中都有這些功能

import os 

# 獲取 桌面路徑

os.path.join(os.path.expanduser(

'~')

,"desktop"

)# 獲取當前檔案的絕對路徑

os.path.dirname(__file__)

# 檔案重新命名 檔案操作中都是對路徑進行處理,不是對檔名進行處理

os.rename(

"123.txt"

,"666.txt"

)# 檔案刪除

os.remove(

"666.txt"

)# 建立資料夾

os.mkdir(

"demo"

)# 獲取當前路徑 預設為專案目錄

print

(os.getcwd())

# 修改當前路徑

os.chdir(

"demo"

)print

(os.getcwd())

os.mkdir(

"demo2"

)# 列出目錄中的內容(子資料夾和檔案)

print

(os.listdir())

# 預設列出當前路徑

# 刪除空資料夾

os.rmdir(

"demo"

)

檔案高階操作
# 檔案讀寫都會導致檔案定位移動(游標移動)

with

open

("123.txt"

,'w+'

)as f:

# 檔案的tell方法可以檢視當前定位

print

(f.tell())

f.write(

"hello python"

)# 可以使用檔案的seek方法 修改檔案定位

# 引數whence 0 表示移動游標到檔案開頭 1 表示當前位置不變 2 表示移動游標到檔案末尾

# 引數offset 基於whence設定偏移 seek(2, 0) 先移動游標到檔案開頭,再向右移動兩個位置

# offset只能對檔案開頭設定偏移 whence=1 或 2, offset只能是0

f.seek(0,

1)print

(f.tell())

f.seek(0,

0)print

(f.tell())

content = f.read(

)print

("內容為:%s"

% content)

import os

defcustem_rmdir

(path)

:"""

刪除非空資料夾

:param path: 資料夾路徑

:return: none

"""# 判斷是資料夾是否為空

iflen

(os.listdir(path)):

# 遍歷其中的內容 將這些內容全部刪除

for sub_name in os.listdir(path)

:# print(sub_name)

# 判斷是檔案還是資料夾

sub_path = os.path.join(path, sub_name)

if os.path.isfile(sub_path)

:# 是檔案就刪除

os.remove(sub_path)

else

:# 是資料夾, 就遞迴

custem_rmdir(sub_path)

os.rmdir(path)

if __name__ ==

'__main__'

: path =

'test'

custem_rmdir(path)

python 檔案操作

簡明 python 教程 中的例子,python 執行出錯,用open代替file 可以執行。poem programming is fun when the work is done if you wanna make your work also fun use python f open e ...

python檔案操作

1,將乙個路徑名分解為目錄名和檔名兩部分 a,b os.path.split c 123 456 test.txt print a print b 顯示 c 123 456 test.txt 2,分解檔名的副檔名 a,b os.path.splitext c 123 456 test.txt pri...

Python 檔案操作

1.開啟檔案 如下 f open d test.txt w 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只寫 如果檔案 不存在,則自動建立檔案 a 附加到檔案末尾 r 讀寫 如果需要以二進位制方式開啟檔案,需要在mode後面加上...