OSError:[WinError 123] python3中的文件名,目录名或卷标语法不正确

时间:2018-03-13 07:23:43

标签: python python-3.x

我在运行python3代码时遇到了一些问题。

以下是我面临错误的代码部分。

try:
        track_no = int(input("Enter the song number you want to download(0 to download all): "))

        resp = input("Do you want to create folder '%s'?(y)" %movie.text) 
        if resp.strip().lower() in ('y', 'yes'):
            dir_path  = os.path.join(os.getcwd(), movie.text) 
            if os.path.isdir(dir_path):
                print ("Directory '%s' already exist. Skipping..."%(dir_path))
            else:
                os.mkdir(dir_path)
        else:
            dir_path = os.getcwd()
        if track_no == 0:
            for song in songs:
                #call downloader function
                download_song(song, dir_path)
        else:
            download_song(songs[track_no - 1], dir_path)
        print ('Download complete')

    except (ValueError, IndexError):
        print ('Invalid input. Exiting...')
        sys.exit(1)
else:
    print ("Movie not found")

我遇到以下错误。

main()
  File "song.py", line 118, in main
    os.mkdir(dir_path)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:\\Users\\Acnovate IN Admin\\AppData\\Local\\Programs\\Python\\Python36-32\\\nWanted\n'

我是python的新手并且正在编写一些脚本。请有人建议我在我的代码的上面部分出了什么问题。

1 个答案:

答案 0 :(得分:1)

正如您在回溯中关于目录名称中的错误语法的行尾看到的那样,有换行符\n。您可以通过剥离movie.text中的任何空白字符来解决此问题。

使用此:

dir_path  = os.path.join(os.getcwd(), movie.text.strip())

如果movie.text中的字符串可能包含更多换行符,请使用此功能。

dir_path  = os.path.join(os.getcwd(), movie.text.replace('\n', ''))