python - Sådan tager du en katalogvej som brugerindgang på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at udvikle et brugergrænseflade, der giver brugerne mulighed for at åbne en menu, indstille en mappe, indtaste et filnavn (word doc) og udføre et sæt opgaver i filen og gemme en ny ændret fil i samme mappe/placering af den gamle fil.


Men jeg får straks en fejl, når jeg forsøger at indstille mappen. Her er min kode:


def menu():
""" the main user-interaction loop
"""
    Cuts = ""

    while True:
        display\_menu()
        choice = int(input('Enter your choice: '))
        print()

        if choice == 0:
            print('input directory')
            x = input()
            os.chdir(x)


Jeg får følgende fejl, når jeg forsøger at gøre det:


OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: "'C:\Users\NAME\Desktop'"


Dette er så mærkeligt at overveje, når jeg gør det direkte på scriptet/skalen det virker!


Faktisk er en af ​​de første linjer i min kode:
os.chdir (C:/Users/NAME/Desktop ') - som fungerer perfekt.


Jeg ved for Windows, at denne diskussion om '/' er en flugt - et koncept, jeg delvis forstår, men jeg har allerede forsøgt mange alternativer med '\' i stedet for '/' eller ved hjælp af '//'. Også undersøgt ved hjælp af raw\_input, men jeg er på 3,6, så den funktion virker ikke engang.


Enhver indsigt/hjælp ville blive meget værdsat! Tak!!

Bedste reference


Baseret på din fejlmeddelelse:


OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: "'C:\Users\NAME\Desktop'"


Jeg tror du indtastede 'C:UsersNAMEDesktop' i input prompt. Omit citater ('') og så skal du være god at gå.


Ellers vil du ende med at sende denne streng til os.chdir: "'C:UsersNAMEDesktop'", som ikke er en gyldig sti.

Andre referencer 1


Med Os primitive vil din kode se ud som:


x = input()
path = os.path.join(os.getcwd(), x)
os.chdir(path)


Det vil navigere fra din nuværende mappe