Python 模擬檔案系統

2021-10-09 15:12:57 字數 4143 閱讀 2171

通過乙個簡單檔案系統目錄結構的模擬設計,加深了解檔案系統的功能和實現

實驗預備內容

複習資料結構中的樹型結構。熟悉樹節點的插入、刪除、修改以及樹的遍歷方法。

實驗內容

編寫一段程式,模擬實現乙個簡單檔案系統的樹型目錄結構,實現以下命令:

命令名 功能 格式

create 建立檔案 create filename size

md 建立目錄 md directoryname

delete 刪除檔案 delete filename

rd 刪除目錄 rd directoryname

cd 改變檔案當前目錄 cd directoryname

返回上一級目錄 cd…

dir 列檔案目錄 dir

dirall 列出全體檔案目錄(含子目錄) dirall

python|頁面置換模擬程式設計

python|銀行家演算法

python|獨佔裝置的分配和**模擬

python|模擬檔案系統

python|程序排程演算法

python|分頁管理方式下儲存分配情況模擬

python|windows下實現經典程序同步問題——理髮師問題

python|模擬實現動態分割槽儲存管理

class

folder

:def

__init__

(self, father, name)

:'''

:param father: 上級目錄

:param name: 目錄名稱

'''self.father = father

self.name = name

# 目錄列表

self.folder =

# 檔案列表

self.

file=[

]root = folder(father=

none

, name=

'root'

)cur = root

path =

'root'

defcreate

(name, size)

:# 建立檔案

global cur

if name in cur.

file

:return

print

('存在同名檔案,新建檔案失敗!'

) cur.

file

)return

print

('新建檔案成功!'

)def

md(name)

:# 建立目錄

global cur, path

if name in cur.folder:

return

print

('存在同名資料夾,新建資料夾失敗!'

) folder = folder(father=cur, name=name)

return

print

('新建資料夾成功!'

)def

delete

(name)

:# 刪除檔案

global cur

for i in cur.

file

:for key, value in i.items():

if key == name:

cur.

file

.pop(cur.

file

.index(i)

)return

print

('刪除檔案成功!'

)return

print

('檔案不存在,刪除檔案失敗!'

)def

rd(name)

:# 刪除目錄

global cur

for i in cur.folder:

if i.name == name:

cur.folder.pop(cur.folder.index(i)

)return

print

('刪除資料夾成功!'

)return

print

('資料夾不存在,刪除資料夾失敗!'

)def

cd(name)

:# 改變當前目錄

global cur, path

if name ==

'..'

:if cur.father !=

none

: path = path[:(

len(path)

-len

(cur.name))-

1]cur = cur.father

else

:for i in cur.folder:

if i.name == name:

cur = i

path = path +

'/'+ name

return

return

print

('找不到指定資料夾!'

)def

dir():

# 列檔案目錄

global cur

for i in cur.

file

:for key, value in i.items():

print

(key, value)

defdirall()

:# 列出全體檔案目錄

global cur

dir()

for i in cur.folder:

print

(' '

, i.name)

if __name__ ==

'__main__'

:while

true

:print

(path, end=

'>'

) order =

input()

.split(

' ')

if order[0]

=='create'

:try

: create(order[1]

, order[2]

)except

:print

('格式錯誤:create filename size'

)elif order[0]

=='md'

:try

: md(order[1]

)except

:print

('格式錯誤:md filename'

)elif order[0]

=='delete'

:try

: delete(order[1]

)except

:print

('格式錯誤:delete filename'

)elif order[0]

=='rd'

:try

: rd(order[1]

)except

:print

('格式錯誤:rd directoryname'

)elif order[0]

=='cd'

:try

: cd(order[1]

)except

:print

('格式錯誤:cd directoryname/cd ..'

)elif order[0]

=='dir'

:dir()

elif order[0]

=='dirall'

: dirall(

)else

:print

('{}不是正確的命令'

.format

(order[0]

))

linux檔案系統模擬

include stdio.h include include include include unistd.h int physic 100 檔案位址緩衝區 int style 1 檔案的型別 char cur dir 10 root 當前目錄 struct command cmd 12 stru...

linux檔案系統模擬

include stdio.h include include include include unistd.h intphysic 100 檔案位址緩衝區 intstyle 1 檔案的型別 charcur dir 10 root 當前目錄 structcommand cmd 12 structbl...

python 檔案系統

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