He configurado una secuencia de comandos de Python que simula un sistema operativo. Tiene un símbolo del sistema y un sistema de archivos virtual. Estoy usando el módulo shelve para simular el sistema de archivos, ya que es multidimensional para admitir una jerarquía de directorios. Sin embargo, tengo problemas para implementar un comando 'cd'. No sé cómo entrar y salir de directorios, a pesar de que tengo un pequeño conjunto de directorios creados la primera vez que inicias el programa. Aquí está mi código:Cómo implementar un sistema de archivos virtual Python usando shelve
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...')
ahora no recibo un error, sólo tengo ni idea de cómo hacerlo y no tenía idea de qué buscar, además de 'sistema de archivos estantería pitón', y que no lo hace obtener algo útil.
¡Interesante! ¿Te importaría compartir para qué sirve esto? –
Configuré tu código para trabajar con python3.x en mi Eclipse ... jugando con él ahora mismo. Estoy un poco confundido hasta ahora. Pero eso está bien. Como David mencionó, ¿podrías darnos un contexto? – Bry6n
Es así que puedo probarlo. Solo por diversión. – elijaheac