как сделать рабочим этот python-скрипт

программирование python

#coding=utf8
import os, fnmatch, sys

def walk(dir,mask):
for name in os.listdir(dir):
path = os.path.join(dir, name)
if os.path.isfile(path):
if fnmatch.fnmatch ( name, mask ):
pass
else:
os.remove(path)
else:
walk(path,mask)

Этот скрипт удаляет все файлы в папке, не попадающие под шаблон mask.
Если вызвать функцию таким образом: walk("D:\\11", "*.cpp") или walk("D:\\asd", "*.cpp"), то все работает нормально, но если в качестве параметра dir задать некую папку, в которой встречаются русские буквы, скрипт не работает.
WindowsError: [Error 3] : 'D:\\\xd0\xbf\xd0\xb0\xd0\xbf\xd0\xba\xd0\xb0/*.*'
Ответы:
проблема с кодировками, винда не понимает utf-8, используйте cp1251 или cp866
либо так:  os.remove(path.decode('utf-8'))


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.