python檔案系統

2021-09-20 21:49:10 字數 3772 閱讀 6461

命令

描述os.getcwd()

得到當前工作的目錄

os.listdir()

指定所有目錄下所有的檔案和目錄名,以列表的形式返回

os.mkdir()

建立目錄

os.rmdir()

刪除指定目錄

os.remove()

刪除指定檔案

os.rename()

修改檔案或資料夾的名稱

os.path.isfile()

判斷指定物件是否為檔案。是返回true,否則false

os.path.isdir()

判斷指定物件是否為目錄。是true,否則false。

os.path.exists()

檢驗指定的物件是否存在。是true,否則false.

os.path.split()

返回路徑的目錄和檔名。

os.chdir()

改變目錄到指定目錄

os.system()

執行shell命令

os.path.join(path, name)

連線目錄和檔名

os.path.getsize()

獲得檔案的大小,如果為目錄,返回0

os.path.basename(path)

返回檔名

os.path.abspath()

獲得絕對路徑

os.path.dirname(path)

返回檔案路徑

1、檔案的概述

檔案是乙個儲存在輔助儲存器上的資料序列,可以包含任何資料內容。概念上,檔案是資料的集合和抽象,類似地,函式是程式的集合和抽象。用檔案形式組織和表達資料更有效也更為靈活。檔案包括兩種型別:文字檔案和二進位制檔案。

二進位制檔案直接由位元0和位元1組成,沒有統一字元編碼,檔案內部資料的組織格式與檔案用途有關。進製檔案和文字檔案最主要的區別在於是否有統一的字元編碼。無**件建立為文字檔案或者二進位制檔案,都可以用「文字檔案方式"和「二進位制檔案方式"開啟,開啟後的操作不同。

2、檔案的開啟

· open() 函式提供7種基本的開啟模式

開啟模式

含義『r』

唯讀模式,如果檔案不存在,返回異常filenotfounderror

『w』預設值覆蓋寫模式,檔案不存在則建立,存在則完全覆蓋原始檔

『x』建立寫模式,檔案不存在則建立,存在則返回異常fileexistserror

『a』追加寫模式,檔案不存在則建立,存在則在原檔案最後追加內容

『b』二進位制檔案模式

』 t』

文字檔案模式,預設值

『+』與r/w/x/a一同使用,在原功能基礎上增加同時讀寫功能

f = open( 'b.txt',' r',encoding= 'gbk' )

f.read()

遇到有些編碼不規範的檔案,你可能會遇到unicodedecodeerror ,因為在文字檔案中可能夾雜了一些非法編碼的字元。遇到這種情況, open()函式還接收乙個errors引數 ,表示如果遇到編碼錯誤後如何處理。最簡單的方式是直接忽略:

b'\xff\xd8\xff\xe1\x00\x18exif\x00\x00...' #十六進製制表示的位元組3、檔案的關閉

程式執行完畢後,系統會關閉由該程式開啟的檔案,但更好的做法,是在檔案使用完畢後,由程式呼叫close()方法關閉檔案。

實際上,計算機中可開啟的檔案數量是有限的,每開啟乙個檔案,就會占用乙個「名額」,當該「名額」耗盡後,系統將無法再開啟新的檔案。此外,當檔案以緩衝方式開啟時,磁碟檔案與記憶體間的讀寫並不是即時的,若程式因異常關閉,可能導致緩衝區中的資料無法寫入檔案,造成資料丟失。

綜上所述,在檔案使用完畢後,及時使用close()函式關團檔案是有必要的。

示例如下:

f = open('a.txt','w')  #以w方式開啟乙個不存在的檔案,會建立此檔案)

f.close() #關閉檔案

1、檔案的讀取
#讀取b檔案的全部內容

f = open(' b. txt','w')

f. read ()

#從指定檔案中讀取指定位元組的資料

>>> f = open("./a.txt")

>>> f.read(5) #從a. txt中湊取5個位元組

'hello'

>>> f. read(3) #從a. txt中獎取3個位元組

' it'

>>> f.read() #湊取剩餘的全部資料

'heima. \nhello itcast. hello world.'

>>> f. read() #再次呼叫,讀取到的資料為空

#按行讀取

>>>f. readline()

'hello world1111\n'

>>>f. readline()

'222222\n'

>>>f. readline ()

''

2、檔案的寫
>>> f = open('a.txt','w') #要寫入內容,必須要先開啟檔案

>>> f.write("hello itheima. \n")

15 #本次寫入檔案的位元組數》

>>> f.write("hello itcast." )

13 #本次寫入檔案的位元組數

>>> f.write("hello world.")

12 #本次寫入檔案的位元組數

>>>f.close() #關閉檔案

●你可以反覆呼叫write()來寫入檔案,但是務必要呼叫f.close0來關閉檔案。

●當我們寫檔案時,作業系統往往不會立刻把資料寫入磁碟,而是放到記憶體快取起來,空閒的時候再慢慢寫入。

●只有呼叫close()函式時,作業系統才保證把沒有寫入的資料全部寫入磁碟。忘記呼叫close()的後果是資料可能只寫了一部分到磁碟,剩下的丟失了。所以,還是用with語句來得保險:

with open('test.txt','w') as f:

f.write('hello world!')

1、 f.tell()

使用者可通過tell()函式獲取當前的讀寫位置,以操作檔案a.txt為例,tell()的用法如下:

>>>f = open("a.txt")

>>>f.tell()

0>>>f.read(5)

'hello'

>>>f.tell()

5>>>f.close()

由以上示例可知,開啟乙個檔案後,檔案預設的讀寫位置為0;當對檔案進行操作後,檔案的讀寫位置也隨之移動。

2、f.seek()

一般情況下,檔案的讀寫是順序的,但並非每次讀寫都需從當前位置開始。python提供了seek()方法,使用該方法可控制檔案的讀寫位置,實現檔案的隨機讀寫。

語法為:seek(offset, from)

其中引數offset表示偏移量,即讀寫位置需要移動的位元組數; from用於指定檔案的讀寫位置,該引數的取值為: 0. 1、2,它們代表的含義分別如下:

0:表示檔案開頭

1:表示使用當前讀寫位置

2:表示檔案末尾

python 檔案系統

python的檔案系統 跟python的檔案相關的十分有用的模組 1 模組的概念 每乙個源 檔案 py 都是乙個模組 2 python自帶的實用模組 1 random模組的randint 函式生成隨機數,不可直接呼叫,需要import語句匯入模組,然後再使用 import random random...

Python檔案與檔案系統

1.import os print 當前目錄是 os.getcwd print os.listdir 這個返回的是當前目錄的檔案和目錄的名稱都是以列表形式返回的 2.author administrator 使用fileinput模組來處理乙個或者多個檔案的內容 import fileinput d...

Python 模擬檔案系統

通過乙個簡單檔案系統目錄結構的模擬設計,加深了解檔案系統的功能和實現 實驗預備內容 複習資料結構中的樹型結構。熟悉樹節點的插入 刪除 修改以及樹的遍歷方法。實驗內容 編寫一段程式,模擬實現乙個簡單檔案系統的樹型目錄結構,實現以下命令 命令名 功能 格式 create 建立檔案 create file...