代码之家  ›  专栏  ›  技术社区  ›  Pymateur

如何在Windows上将目录路径作为用户输入?

  •  0
  • Pymateur  · 技术社区  · 6 年前

    我正在尝试开发一个UI,允许用户打开菜单、设置目录、输入文件名(word doc)并对文件执行一组任务,并将新修改的文件保存在旧文件的相同目录/位置。

    然而,当我尝试设置目录时,我立即出现了一个错误。这是我的代码:

    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)
    

    当我尝试执行此操作时,出现以下错误:

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

    考虑到我直接在脚本/shell上执行它,这真是太奇怪了!

    事实上,我的代码的第一行是: 操作系统。chdir(C:/Users/NAME/Desktop“)-工作正常。

    我知道对于Windows,有这样一种关于“/”是一种逃避的讨论,这是一个我部分理解的概念,但我已经尝试了许多使用“\”而不是“/”或使用“/”。还研究了使用raw\u输入,但我使用的是3.6,所以该函数甚至不起作用。

    如有任何见解/帮助,将不胜感激!谢谢

    2 回复  |  直到 6 年前
        1
  •  1
  •   Szabolcs    6 年前

    根据您的错误消息:

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

    我想你已经进去了 'C:\Users\NAME\Desktop' 进入 input 促使省略引号( '' )然后你就可以走了。

    否则,您将最终将此字符串传递给 os.chdir : "'C:\Users\NAME\Desktop'" 不是有效路径。

        2
  •  0
  •   Luc    6 年前

    使用Os原语,您的代码看起来像:

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

    将从当前目录导航