檔案的目的就是把資料存起來(持久化), 而不必每次都重新生成.
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後面加上...