Найти - Пользователи
Полная версия: FileNotFoundError: [WinError 3] Системе не удается найти указанный путь
Начало » Python для новичков » FileNotFoundError: [WinError 3] Системе не удается найти указанный путь
1
Fixx_Jr
путь указан абсолютный, что не так? проясните пожалста

 import os
import re
#path = input("The path to the folder: ")
path = r'D:\temp\files'
ListFiles = os.listdir(path)
LenList = len(ListFiles)
t_data = []
os.chdir(path)
for i in range (0, LenList):
    pat = r'(.*) - (\d+) (.*) \((\d+)\)\.mp3'
    t_data = re.search(pat, ListFiles[i]).groups()
    final_name = 'Bob Dylan' + '/' + t_data[3] + ' ' + t_data[0] + '/' + t_data[1] + ' ' + t_data[2] + '.mp3'
    os.rename(ListFiles[i], final_name)

в результате ошибка:
 C:\Users\Serge\AppData\Local\Programs\Python\Python37-32\python.exe C:/Users/Serge/PycharmProjects/ptn_1/task_4.py
Traceback (most recent call last):
  File "C:/Users/Serge/PycharmProjects/ptn_1/task_4.py", line 14, in <module>
    os.rename(ListFiles[i], final_name)
FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: "Bob Dylan - 02 Talkin' New York (1962).mp3" -> "Bob Dylan/1962 Bob Dylan/02 Talkin' New York.mp3"
py.user.next
os.rename() не создаёт директории, она только с файлом работает. Сначала нужно создать все директории через os.mkdir().

Можно использовать модуль shutil для работы с файлами и директориями. Там многие вещи уже собраны вместе.
Fixx_Jr
py.user.next
os.rename() не создаёт директории, она только с файлом работает. Сначала нужно создать все директории через os.mkdir().

файлы уже лежат в папке, мне надо только их переименовать
или я что-то не так понимаю?

попробовал так, результат тот же
 os.rename(os.path.join(path, ListFiles[i]), os.path.join(path,final_name))

 FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: "D:\\temp\\files\\Bob Dylan - 02 Talkin' New York (1962).mp3" -> "D:\\temp\\files\\Bob Dylan/1962 Bob Dylan/02 Talkin' New York.mp3"
Fixx_Jr
попробовал shutil

 shutil.copy2(ListFiles[i], final_name)

результат:

 FileNotFoundError: [Errno 2] No such file or directory: "Bob Dylan/1962 Bob Dylan/01 You're No Good.mp3"
FishHook
Fixx_Jr
Попробуйте заэкранировать “/” в названии файла. Вообще, чтобы исключить траблы с именами поэкспериметрируйте сначала на простых именах одним словом латиницей.
PEHDOM
Fixx_Jr в винде имя файла не может содержать символ “/”, этот символ зарезервирован как разделитель ключей командного интерпретатора, вот оно вам и ругается.
также имя файла не может содержать символы :, *, ?, ", < , > , |
Допустимо, но нежелательно использвание символов %, ! и @ изза возможных проблем в широко распространённых компонентах.
подробнее читайте в https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file
Fixx_Jr
PEHDOM
Fixx_Jr в винде имя файла не может содержать символ “/”

странно это задача для начинающих пайтонистов. вот отсюда https://www.ynonperek.com/2017/09/21/python-exercises/
значит какое-то решение у неё должно быть. наверно специально, что озадачить ))
PEHDOM
Fixx_Jr
начит какое-то решение у неё должно быть. наверно специально, что озадачить ))
да,да, тольк задачао стояла для линукс(фряху, солярку вобшем юникс-лайк ОС), в котором “/” используеться для разделителя каталогов(и обозначения корневого каталога), и код должен переместить файлы в подкаталог “Bob Dylan” в котором каталог “1962 Bob Dylan” в котором файл “01 You're No Good.mp3”
У вас венда, соотвевенно там для разделения каталогов используеться другой символ: “\”
Fixx_Jr
теперь понял, где я тормознул ))

спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB