第十五章 檔案讀寫
第十五章 檔案讀寫
常見的字元編碼格式
- python的直譯器使用的Unicode(記憶體)
- .py檔案在磁碟上使用的是utf-8儲存(外存)
對檔案的操作
寫入檔案可以用write()和writelines()
讀檔案可以用read(),readline()和readlines()
檔案的開啟模式:只讀r,只寫w,追加a,二進位制用b
開啟模式 | 描述 |
---|---|
r | 以只讀模式開啟檔案,檔案的指標將會放在檔案的開頭 |
w | 以只寫模式開啟檔案,如果檔案不存在則建立,如果檔案存在則覆蓋原有內容,檔案指標在檔案的開頭 |
a | 以追加模式開啟檔案,如果檔案不存在則建立,檔案指標在問檔案的開頭,如果檔案存在,則在檔案末尾追加內容,檔案指標在檔案末尾 |
b | 以二進位制方式開啟檔案,不能單獨使用,需要與其他模式一起使用,rb或wb |
+ | 以讀寫方式開啟檔案,不能單獨使用,需要與其他模式一起使用,a+ |
檔案物件的常用方法
方法名 | 描述 |
---|---|
read([size]) | 從檔案中讀取size個位元組或字元的內容返回。若省略[size],則一次性讀取檔案的所有內容 |
readline() | 從文字檔案中讀取一行內容 |
readlines() | 把文字檔案中每一行都作為獨立的字串物件,並將這些物件放入列表返回 |
write(str) | 將字串str寫入檔案 |
writelines(s_list) | 將字串列表s_list寫入文字檔案,不新增換行符 |
seek(offset,[whence]) | 將檔案指標移動到新的位置,offset表示相對於whence的位置:offset為正則向結束方向移動,為負則向開始方向移動。whence為0(預設值)表示從檔案頭開始計算,1表示從當前位置開始計算,2表示從檔案尾開始計算 |
tell() | 返回檔案指標的當前位置 |
flush() | 把緩衝區的內容寫入檔案,但不關閉檔案 |
close() | 把緩衝區的內容寫入檔案,關閉檔案,並釋放檔案物件相關資源 |
file = open('a.txt','r')
#print(file.readlines())# 將檔案內容全部讀出來
#print(file.readline())
print(file.read(2))# 可以選擇讀一部分
file.close()
file = open('b.txt','w')
file.write('Python')
file.close()
file = open('b.txt','a')
file.write('Python')
file.close()
file = open('c.txt','a')
#file.write('hello')
lst = ['java','go','python']
file.writelines(lst)
file.close()
src_file = open('logo.jpg','rb')
target_file = open('copylogo.jpg','wb')
target_file.write(src_file.read())
target_file.close()
src_file.close()
目錄操作
os模組
os模組是python內建的與作業系統功能和檔案系統相關的模組,該模組中的語句的執行結果通常與作業系統有關,在不同的作業系統上執行,得到的結果可能不一樣
os模組操作目錄相關函式
函式 | 說明 |
---|---|
getcwd() | 返回當前的工作目錄 |
listdir(path) | 返回指定路徑下的檔案和目錄資訊 |
mkdir(path,[mode]) | 建立目錄 |
makedirs(path1/path2…,[mode]) | 建立多級目錄 |
rmdir(path) | 刪除目錄 |
removedirs(path1/path2) | 刪除多級目錄 |
chdir(path) | 將path設定為當前工作目錄 |
import os
#os.system('notepad.exe') # 開啟記事本
#os.system('calc.exe') # 開啟計算器
# 直接呼叫可執行檔案
os.startfile('D:\\Program Files\\Tencent\\QQ\\Bin\\qq.exe')
import os
print(os.getcwd())
#print(os.listdir('../chap15'))
#os.mkdir('newdir2')
#os.makedirs('A/B/C')
#os.rmdir('newdir2')
#os.removedirs('A/B/C')
os.chdir('D:\\pythonProject\\chap15')
os.path模組
os.path模組操作目錄相關函式
函式 | 說明 |
---|---|
abspath(path) | 用於獲取檔案或目錄的絕對路徑 |
exists(path) | 用於判斷檔案或目錄是否存在,如果存在返回True,否則返回False |
join(path,name) | 將目錄與目錄或檔名拼接起來 |
splitext() | 分離檔名和副檔名 |
basename(path) | 從一個目錄提取檔名 |
dirname(path) | 從一個路徑中提取檔案路徑,不包括檔名 |
isdir(path) | 用於判斷是否路徑 |
import os.path
print(os.path.abspath('demo13.py'))
print(os.path.exists('demo13.py'),os.path.exists('demo18.py'))
print(os.path.join('D:\\pythonProject\\vipPython','demo13.py'))
print(os.path.split('D:\pythonProject\\vipPython\chap15\demo13.py'))
print(os.path.splitext('demo13.py'))
print(os.path.basename('D:\\pythonProject\\vipPython\\chap15\\demo13.py'))
print(os.path.dirname('D:\\pythonProject\\vipPython\\chap15\\demo13.py'))
print(os.path.isdir('D:\\pythonProject\\vipPython\\chap15\\demo13.py'))
'''
D:\pythonProject\vipPython\chap15\demo13.py
True True
D:\pythonProject\vipPython\demo13.py
('D:\\pythonProject\\vipPython\\chap15', 'demo13.py')
('demo13', '.py')
demo13.py
D:\pythonProject\vipPython\chap15
False
'''
相關文章
- 檔案讀寫
- 檔案排版(文字檔案讀寫)
- 第14周-閱讀專案1-二進位制檔案的讀寫
- Golang 讀、寫檔案Golang
- keras讀寫檔案Keras
- perl 讀寫檔案
- 檔案讀寫IO
- 檔案的讀寫
- 「Python」:檔案讀寫Python
- Python——檔案讀寫Python
- Python 讀寫檔案Python
- C++檔案讀寫C++
- 普通檔案的讀寫
- 【Java】讀寫文字檔案Java
- c fopen檔案讀寫
- 讀寫iOS XML檔案iOSXML
- Python讀寫檔案Python
- C++讀寫檔案C++
- VBA建立文字檔案、讀寫文字檔案
- 檔案操作之按照行讀寫檔案
- Perl讀寫檔案&字串操作字串
- java 讀寫 ini 配置檔案Java
- C++讀寫檔案操作C++
- Golang對檔案讀寫操作Golang
- C++檔案讀寫操作C++
- python讀寫excel檔案PythonExcel
- c風格讀寫檔案
- python檔案讀寫操作Python
- C/C++ 檔案讀寫C++
- Java 字元流檔案讀寫Java字元
- IO流的檔案讀寫
- Java檔案操作 讀寫操作Java
- R讀寫檔案略記
- c#讀寫ini檔案C#
- Scala檔案的讀寫操作
- VB讀寫ini檔案 (轉)
- C語言-檔案讀寫C語言
- 讀取檔案流並寫入檔案流