Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 20, 2019 22:49:36

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

путь указан абсолютный, что не так? проясните пожалста

 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"

Офлайн

#2 Фев. 21, 2019 00:50:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

os.rename() не создаёт директории, она только с файлом работает. Сначала нужно создать все директории через os.mkdir().

Можно использовать модуль shutil для работы с файлами и директориями. Там многие вещи уже собраны вместе.



Отредактировано py.user.next (Фев. 21, 2019 00:52:27)

Офлайн

#3 Фев. 21, 2019 08:33:12

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

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"

Офлайн

#4 Фев. 21, 2019 09:03:05

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

попробовал 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"

Офлайн

#5 Фев. 21, 2019 09:03:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

Fixx_Jr
Попробуйте заэкранировать “/” в названии файла. Вообще, чтобы исключить траблы с именами поэкспериметрируйте сначала на простых именах одним словом латиницей.



Офлайн

#6 Фев. 21, 2019 09:29:26

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

Fixx_Jr в винде имя файла не может содержать символ “/”, этот символ зарезервирован как разделитель ключей командного интерпретатора, вот оно вам и ругается.
также имя файла не может содержать символы :, *, ?, ", < , > , |
Допустимо, но нежелательно использвание символов %, ! и @ изза возможных проблем в широко распространённых компонентах.
подробнее читайте в https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 21, 2019 09:38:22)

Офлайн

#7 Фев. 21, 2019 15:44:45

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

PEHDOM
Fixx_Jr в винде имя файла не может содержать символ “/”

странно это задача для начинающих пайтонистов. вот отсюда https://www.ynonperek.com/2017/09/21/python-exercises/
значит какое-то решение у неё должно быть. наверно специально, что озадачить ))

Офлайн

#8 Фев. 21, 2019 16:03:54

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 21, 2019 16:09:20)

Офлайн

#9 Фев. 21, 2019 16:53:50

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

FileNotFoundError: [WinError 3] Системе не удается найти указанный путь

теперь понял, где я тормознул ))

спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version