我已經設置了一個模擬OS的Python腳本。它有一個命令提示符和一個虛擬文件系統。我正在使用擱置模塊來模擬文件系統,它是多維的,以支持目錄層次結構。但是,我無法執行'cd'命令。我不知道如何進入和退出目錄,即使我在第一次啓動程序時創建了一小組目錄。這裏是我的代碼:如何使用shelve實現Python虛擬文件系統
import shelve
fs = shelve.open('filesystem.fs')
directory = 'root'
raw_dir = None
est_dir = None
def install(fs):
fs['System'] = {}
fs['Users'] = {}
username = raw_input('What do you want your username to be? ')
fs['Users'][username] = {}
try:
test = fs['runbefore']
del test
except:
fs['runbefore'] = None
install(fs)
def ls(args):
print 'Contents of directory', directory + ':'
if raw_dir:
for i in fs[raw_dir[0]][raw_dir[1]][raw_dir[2]][raw_dir[3]]:
print i
else:
for i in fs:
print i
def cd(args):
if len(args.split()) > 1:
if args.split()[1] == '..':
if raw_dir[3]:
raw_dir[3] = 0
elif raw_dir[2]:
raw_dir[2] = 0
elif raw_dir[1]:
raw_dir[1] = 0
else:
print "cd : cannot go above root"
COMMANDS = {'ls' : ls}
while True:
raw = raw_input('> ')
cmd = raw.split()[0]
if cmd in COMMANDS:
COMMANDS[cmd](raw)
#Use break instead of exit, so you will get to this point.
raw_input('Press the Enter key to shutdown...')
我沒有得到一個錯誤,我只是不知道如何做到這一點並沒有什麼搜索除了「蟒蛇貨架文件系統」的想法,而且不得到有用的東西。
有趣!你介意分享這是爲了什麼嗎? – 2012-01-11 03:43:08
我設置了你的代碼在我的Eclipse中爲python3.x工作...現在就玩它。到目前爲止,我有點困惑。但沒關係。正如大衛所說,你能提供一些背景嗎? – Bry6n 2012-01-11 03:57:34
這是我可以試試看。只是爲了好玩。 – elijaheac 2012-01-11 22:25:30