Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 7, 2017 16:09:42

vl
Зарегистрирован: 2017-08-21
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Обмен названиями папок

Короче, я хочу чтоб две папки обменялись названиями без посредника(без н-ной папки).:

 a=('C://Users/User/Desktop/Вверх')
b=('C://Users/User/Desktop/Низ')
import os
ee33=os.rename(c,a)
c1=os.rename(b,a)
c2=os.rename(a,b)
c1.c2 

Смотрю на свой скрипт и мне стыдно.
Ах да я попробовал другие варианты с созданием папки-посредника и вариант на основе кортежа, но во всех случаях пишет

 FileExistsError: [WinError 183] Невозможно создать файл, так как он уже существует: 'C://Users/User/Desktop/Низ' -> 'C://Users/User/Desktop/Вверх'

Отредактировано vl (Ноя. 7, 2017 16:11:24)

Офлайн

#2 Ноя. 7, 2017 16:58:50

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

Обмен названиями папок

   
a='C://Users/User/Desktop/Вверх'
b='C://Users/User/Desktop/Низ'
os.rename(a, 'C://Users/User/Desktop/Temp')
os.rename(b, 'C://Users/User/Desktop/Вверх')
os.rename('C://Users/User/Desktop/Temp', 'C://Users/User/Desktop/Низ')



Отредактировано FishHook (Ноя. 7, 2017 16:59:11)

Офлайн

#3 Ноя. 7, 2017 17:26:43

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

Обмен названиями папок

без “посредника” не выйдет. a, b = b, a возможны изза особенностей работы пайтона с обьектами в памяти. ФС не позволяет такого. Вернее оно то наверняка и возможно, если работать непосредственно с таблицей файлов , а вот так, через os.rename точно не выйдет.
+ с путями у вас не все в порядке, ХЗ может оно и скушает такие пути, но лучше нормализовать их с помощью os.path.normpath или сразу вводить адекватные пути для вашей ОС.



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

Отредактировано PEHDOM (Ноя. 7, 2017 17:41:01)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version