我在运行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的新手并且正在编写一些脚本。请有人建议我在我的代码的上面部分出了什么问题。
答案 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', ''))