標籤:ase 對象 isl isa cap 指定 二進位 from 函數
一、檔案開啟檔案
格式:open(file, mode = ‘r‘, buffering = -1, encoding = None, errors = None, newline = None, closefd = True, open = None)
==>一般常用file、mode兩個參數;
#file:被開啟檔案所在地址 + 檔案名稱;若只有檔案名稱,認為是在目前的目錄下開啟檔案(正則執行的.py檔案所有檔案夾);預設位置為當前;
#mode:檔案開啟的模式;
| 模式 |
執行操作 |
| ‘r’ |
以唯讀方式開啟檔案(預設);#若檔案不存在,報異常,不建立; |
| ‘w’ |
以寫入的方式建立新檔案;#若檔案名稱存在,將其覆蓋; |
| ‘x’ |
建立檔案;#如果檔案存在,引發異常; |
| ‘a’ |
以寫入方式開啟檔案;#若檔案存在,可在檔案後追加內容;若檔案不存在,建立檔案; |
| ‘b’ |
以二進位模式開啟檔案;#如‘rb’、‘wb’、‘ab’、‘xb’等; |
| ‘t’ |
以文字模式開啟檔案(預設); |
| ‘+’ |
k可讀寫入模式;(添加到其它模式中使用) |
| ‘U’ |
通用分行符號支援 |
f = open(‘test.txt‘, ‘w‘)s = ‘這小夥真帥‘f.write(s)f.closef = open(‘test.txt‘)print(type(f))#輸出:<class ‘_io.TextIOWrapper‘>#_io.TextIOWrapper:是什麼意思?print(list(f))#輸出:[‘這小夥真帥‘]
二、檔案對象的方法
| 檔案對象的方法 |
執行操作 |
文法格式 |
| close() |
關閉檔案; |
f.close() |
| read(size = -1) |
從檔案中讀取size個字元(不是位元組),若未給定size值或給負值時, 讀取剩餘的(從檔案指標位置)所有位元組然後做為字串返回; |
f.read(n): 從指標位置起,讀取n個位元組 |
| readline() |
從檔案指標位置開始,讀取一整行字串;#一整行:以分行符號 ‘\n’ 來分行; |
f.read() |
| write(str) |
將字串寫入檔案; #所寫入的資料必須是字串; |
f.write(‘字串‘) |
| writelines(sep) |
向檔案寫入字串序列sep;#sep是一個返回字串的可迭代對象,不是字串本身; |
f.writelines(字串的可迭代對象) |
| seek(offset, from) |
移動檔案指標;#從offset(0/1/2)處,位移from個位元組; #0代表檔案起始位置;1代表指標當前位置;2代表檔案末尾; #from為具體的正整數; |
f.seek(1, size): #從當前指標位置移動size個位元組; |
| tell() |
返回指標當前位置;#結果為正整數,表示指標距離檔案起始位置的位元組數; |
f.tell() |
#檔案指標:相當於一個‘書籤’,對檔案進行引索、讀取、寫入時,從指標位置開始操作;
#一個字元是1個位元組;一個漢字是2個位元組;
#檔案本身可以看做是一個字串,讀取檔案時,返迴文件對象,可以被迭代操作,與字串迭代操作一樣;
f = open(‘test.txt‘, ‘w‘)for i in f: print(i)#輸出:這小夥真帥
三、python檔案系統方法
1)OS模組中關於檔案/目錄常的函數
#對於檔案系統的訪問,Python一般通過OS模組來實現;
#Python是誇平台的語言:同樣的原始碼在不同的作業系統上執行時,不需要修改;
#OS:系統模組;(Operating System)
#使用OS模組下的方法前,先匯入OS模組:import os
OS模組中關於檔案/目錄常的函數
| 函數名 |
功能 |
文法格式 |
| getcwd() |
返回當前工作目錄;#即當前工作的物理地址 |
os.getcwd() |
| chdir(path) |
改變工作目錄;#path指代需要切換到的目錄 |
os.chdir(path) |
| listdir(path = ‘.‘) |
l列舉指定目錄中的檔案名稱(包含檔案夾的名字),其中檔案名稱帶格式(如‘.py‘、‘.txt‘),以[‘str1‘, ‘str2‘]形式返回; #‘.‘:表示當前工作目錄,也是預設值; #‘..‘:表示工作目錄的上一層目錄; #path指定具體地址,如(‘E:\pythonwj‘):返回指定地址下的檔案名稱; |
os.listdir(path = ‘.‘) |
| mkdir() |
在當前工作目錄下,建立單個檔案夾(不是檔案);#如果檔案夾已存在,拋出異常; |
os.mkdir() |
| makedirs(path) |
在指定目錄下,建立多層檔案夾;#如果檔案夾已存在,拋出異常; #例1:os.makedirs(r‘.\a\b\c‘):a在當前工作目錄下,b在a檔案夾下,c在b檔案夾下; #r‘.\a\b\c‘:要加r,表示原始字串;若在當前工作目錄下建立,要加 ‘.\‘ ; #例2:os.makedirs(r‘E:\pythonwj\a\b\c‘) |
os.makedirs(path) |
| remove(path) |
刪除當前工作目錄下指定的檔案;#不是檔案夾 |
os.remove(path) |
| rmdir(path) |
刪除當前工作目錄下指定的單層檔案夾;#檔案下不在有其它檔案; |
os.rmdir(path) |
| removedirs(path) |
刪除當前工作目錄下指定的多層檔案;#連同檔案夾下的其它檔案夾同時刪除; #os.removedirs(r‘a\b\c‘):刪除當前工作目錄下的a檔案夾,以及a檔案夾下的b、c檔案夾; |
os.removedirs(path) |
| rename() |
重新命名當前工作目錄下的檔案夾或檔案; #os.rename(‘檔案名稱1/檔案夾名1‘, ‘檔案名稱2/檔案夾名2‘): ==>將目前的目錄下的檔案1/檔案夾1,更名為 檔案2/檔案夾2 |
os.rename(name1,name2) |
| system() |
s使用系統的小工具; #例:os.system(‘calc‘):開啟系統的計算機; |
os.system(‘小工具代碼‘) |
| walk(top) |
遍曆top參數指定路徑下的所有子目錄,並將結果返回一個三元組(路徑, [包含目錄], [包含檔案]) #top:需要遍曆的頂級目錄的路徑; |
os.walk(top) |
擴充:
os.curdir表示目前的目錄(‘.‘);
os.pardir表示上一級目錄(‘..‘);
os.sep表示路徑的分隔字元,比如Windows系統下為‘\\’,Linux系統下為‘/’;
os.linesep表示當前平台使用的行中支符;(Windows下為‘\r\n’,Linux下為‘\n’)
os.name表示當前使用的作業系統;
import osprint(os.sep)#輸出:\
#walk(top)用法,及與os.path.walk()的區別,參見:Python:os.walk()和os.path.walk()用法
執行個體:
import osfor i in os.walk(r‘E:\pythonwj‘): print(i)#輸出:# (‘E:\\pythonwj‘, [‘Chapter_2‘, ‘Chapter_3‘, ‘Chapter_4‘, ‘Chapter_5‘, ‘Chapter_6‘], [])# (‘E:\\pythonwj\\Chapter_2‘, [], [‘0_0.py‘, ‘2_1.py‘, ‘2_2.PY‘, ‘2_3.py‘])# (‘E:\\pythonwj\\Chapter_3‘, [], [‘0-0.py‘, ‘3-1.py‘, ‘3-3-1.py‘, ‘3-3-2.py‘, ‘3-4.py‘, ‘3-5.py‘])# (‘E:\\pythonwj\\Chapter_4‘, [], [‘0-0.py‘, ‘0.py‘, ‘00.py‘, ‘4-1.py‘, ‘4-2.py‘, ‘4-4.py‘, ‘4-5.py‘, ‘4-6.py‘, ‘record.txt‘, ‘test.txt‘, ‘test_1.txt‘, ‘test_2.txt‘, ‘test_3.txt‘, ‘txt‘test_2.txt‘, ‘test_3.txt‘, ‘txt.py‘])# (‘E:\\pythonwj\\Chapter_5‘, [], [])# (‘E:\\pythonwj\\Chapter_6‘, [], [])
二)os.path模組中關於路徑常用的函數
os.path模組中關於路徑常用的函數
| 函數名 |
功能及使用方法 |
| basename(path) |
去掉目錄路徑,單獨返迴文件名 |
| dirname(path) |
去掉檔案名稱,單獨返回目錄路徑; |
| join(path1[, path2[, ...]]) |
將path1和path2各部分組合成一個路徑名 |
| split(path) |
分割檔案名稱和路徑,返回(f_path, f_name)元組; #如果完全使用目錄,它也會將最後一個目錄作為檔案名稱分離,且不會判斷檔案或者目錄是否存在; |
| splitext(path) |
分離檔案名稱和副檔名,返回(f_name, f_extension)元組; |
| getsize(file) |
返回指定檔案的尺寸,單位位元組; |
| getatime(file) |
返回指定檔案最近訪問的時間:浮點型秒數;(可用time模組的gmtime()或者localtime()函數換算) |
| getctime(file) |
返回指定檔案的建立時間:浮點型秒數;(可用time模組的gmtime()或者localtime()函數換算) |
| getmtime(file) |
返回指定檔案最新的修改時間:浮點型秒數;(可用time模組的gmtime()或者localtime()函數換算) |
以下函數返回True或False
| 函數名 |
功能與使用方法 |
| exists(path) |
判斷指定路徑(目錄或者檔案)是否存在 |
| isabs(path) |
判斷指定路徑是否為絕對路徑 |
| iadir(path) |
判斷指定路徑是否存在且是一個目錄 |
| iafile(path) |
判斷指定路徑是否存在且是一個檔案 |
| islink(path) |
判斷指定路徑是否存在且是一個符號連結 |
| ismount(path) |
判斷指定路徑是否存在且是一個掛載符 |
| samefile(path1, path2) |
判斷path1和path2兩個路徑是否指向同一個檔案 |
Python:檔案操作