Próbuję zrobić prosty menadżer plików w pythonie, niestety funkcja replace nie działa
Precyzuj następnym razem lepiej swoje pytania, bo to nie jest prawda że .replace()
nie działa, tylko najwyraźniej działa inaczej niż byś się spodziewał.
Masz kod:
Kopiuj
Cmd.replace('open ', '')
Przy czym .replace()
oczywiście nie modyfikuje swojego argumentu, a jedynie zwraca swój wynik, więc kod powinien wyglądać jakoś tak:
Kopiuj
remaining_command = Cmd.replace('open ', '')
Swoją drogą nawet nie powinieneś używać .replace()
, bo co jakbym wpisał np taką komendę:
Kopiuj
> open C:\user\my files\my open file.txt
to wtedy Twój .replace()
przerobi mi to na
Kopiuj
> open C:\user\my files\my file.txt
No i Twój in
, również jest słaby, bo jak ktoś po prostu wpisze
Kopiuj
> delete C:\open.txt
to Twój in
"złapie" ten open
.
Przy czym cały kod, moim zdaniem jest trochę średni, bo po pierwsze można by go napisać jakoś ładniej, np tak:
Kopiuj
def execute(working_directory: str) -> None:
command = input(working_directory + ">")
if command.startsWith("open "):
arguments = text[5:]
try:
with open(working_directory + "\\" + arguments) as f:
s = f.read()
except OSError:
print("OPENING FILE FAILED")
while True:
execute(r"C:\Users\Tomasz")