os模組及其檔案操作(僅本人記錄使用)

2021-09-27 04:32:34 字數 3537 閱讀 1880

常見函式列表

__file__引數獲取當前檔案 如os.path.basename(__file__)獲取當前檔名

os.sep:取代作業系統特定的路徑分隔符 windows為\ linux為/

os.name:指示你正在使用的工作平台。比如對於windows,它是'nt',而對於linux/unix使用者,它是'posix'。

os.getcwd():得到當前工作目錄。

os.getenv()和os.putenv:分別用來讀取和設定環境變數

一、設定系統環境變數

1、os.environ['環境變數名稱']='環境變數值' #其中key和value均為string型別

2、os.putenv('環境變數名稱', '環境變數值')

二、獲取系統環境變數

1、os.environ['環境變數名稱']

2、os.getenv('環境變數名稱')

os.listdir():返回指定目錄下的所有檔案和目錄名

os.remove(file):刪除乙個檔案(資料夾不可刪除)

os.stat(file):獲得檔案屬性

os.chmod(file):修改檔案許可權和時間戳

os.mkdir(name):建立目錄

os.rmdir(name):刪除目錄

os.removedirs(r「c:\python」):刪除多個空目錄

os.system():執行shell命令

os.exit():終止當前程序

os.linesep:給出當前平台的行終止符。例如,windows使用'\r\n',linux使用'\n'而mac使用'\r'

os.path.split():返回乙個路徑的目錄名和檔名

os.path.isfile()和os.path.isdir()分別檢驗給出的路徑是乙個目錄還是檔案

os.path.existe():檢驗給出的路徑是否真的存在

os.listdir(dirname):列出dirname下的目錄和檔案

os.curdir:返回當前目錄('.')

os.chdir(dirname):改變工作目錄到dirname

os.path.isdir(name):判斷name是不是目錄,不是目錄就返回false

os.path.isfile(name):判斷name這個檔案是否存在,不存在返回false

os.path.exists(name):判斷是否存在檔案或目錄name

os.path.getsize(name):或得檔案大小,如果name是目錄則返回0

os.path.abspath(name):獲得絕對路徑

os.path.isabs():判斷是否為絕對路徑

os.path.normpath(path):規範path字串形式

os.path.split(name):分割檔名與目錄(事實上,如果你完全使用目錄,它也會將最後乙個目錄作為檔名而分離,同時它不會判斷檔案或目錄是否存在)

os.path.splitext():分離檔名和副檔名

os.path.join(path,name):連線目錄與檔名或目錄

os.path.basename(path):返回檔名

os.path.dirname(path):返回檔案路徑

讀取檔案:

os.mknod("text.txt"):建立空檔案

fp = open("text.txt",w):直接開啟乙個檔案,如果檔案不存在就建立檔案

關於open的模式

w 寫方式

a 追加模式開啟(從eof開始,必要時建立新檔案)

r+ 以讀寫模式開啟

w+ 以讀寫模式開啟

a+ 以讀寫模式開啟

rb 以二進位制讀模式開啟

wb 以二進位制寫模式開啟 (參見 w )

ab 以二進位制追加模式開啟 (參見 a )

rb+ 以二進位制讀寫模式開啟 (參見 r+ )

wb+ 以二進位制讀寫模式開啟 (參見 w+ )

ab+ 以二進位制讀寫模式開啟 (參見 a+ )

fp.read([size])  #size為讀取的長度,以byte為單位

fp.readline([size])  #讀一行,如果定義了size,有可能返回的只是一行的一部分

fp.readlines([size])  #把檔案每一行作為乙個list的乙個成員,並返回這個list。其實它的內部是通過迴圈呼叫readline()來實現的。如果提供size引數,size是表示讀取內容的總長,也就是說可能唯讀到檔案的一部分。

fp.write(str)  #把str寫到檔案中,write()並不會在str後加上乙個換行符

fp.writelines(seq)  #把seq的內容全部寫到檔案中(多行一次性寫入)。這個函式也只是忠實地寫入,不會在每行後面加上任何東西。

fp.close()  #關閉檔案。python會在乙個檔案不用後自動關閉檔案,不過這一功能沒***,最好還是養成自己關閉的習慣。 如果乙個檔案在關閉後還對其進行操作會產生valueerror

fp.flush()  #把緩衝區的內容寫入硬碟

fp.fileno()  #返回乙個長整型的」檔案標籤「

fp.isatty()  #檔案是否是乙個終端裝置檔案(unix系統中的)

fp.tell()  #返回檔案操作標記的當前位置,以檔案的開頭為原點

fp.next()  #返回下一行,並將檔案操作標記位移到下一行。把乙個file用於for … in file這樣的語句時,就是呼叫next()函式來實現遍歷的。

fp.seek(offset[,whence])  #將檔案打操作標記移到offset的位置。這個offset一般是相對於檔案的開頭來計算的,一般為正數。但如果提供了whence引數就不一定了,whence可以為0表示從頭開始計算,1表示以當前位置為原點計算。2表示以檔案末尾為原點進行計算。需要注意,如果檔案以a或a+的模式開啟,每次進行寫操作時,檔案操作標記會自動返回到檔案末尾。

fp.truncate([size])  #把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些隨機的內容加上去。

目錄操作

os.mkdir("file")  建立目錄

shutil.copyfile("oldfile","newfile")  複製檔案:oldfile和newfile都只能是檔案

shutil.copy("oldfile","newfile")  oldfile只能是資料夾,newfile可以是檔案,也可以是目標目錄

shutil.copytree("olddir","newdir")  複製資料夾.olddir和newdir都只能是目錄,且newdir必須不存在

os.rename("oldname","newname")  重新命名檔案(目錄).檔案或目錄都是使用這條命令

shutil.move("oldpos","newpos")  移動檔案(目錄)

os.rmdir("dir")  只能刪除空目錄

shutil.rmtree("dir")  空目錄、有內容的目錄都可以刪

os.chdir("path")  轉換目錄,換路徑

C檔案操作及其檔案緩衝區

本次我們主要討論以下內容 程式檔案 包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 windows環境字尾為.exe 資料檔案 如圖所示 如我們可以這樣定義乙個file 的指標變數 file pf 檔案指標變數file fopen const char filen...

Python 檔案操作之os模組

在我看來,python最大的吸引之處在於簡便,同時有很多很多的庫,無論內部還是外部,我們可以很方便的使用它,這就避免了重複造輪子的繁瑣。下面,我們主要介紹一下os模組,主要是用於操作檔案目錄的乙個模組 閒話不多說,直入正題 1.環境 1 獲取所有的環境變數值,返回乙個字典 os.environ 2 ...

Python之檔案操作 os模組

python os 模組提供了乙個統一的作業系統介面函式一 對於系統的操作1 os.name 當前使用平台 其中 nt 是 windows,posix 是linux 或者 unix 2 os.sep 輸出作業系統的特定的路徑分隔符。win下為 linux下為 3 os.pathsep 輸出分格符 輸...