Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 2
1

Не корректная работа с кириллическими именами папок

17.06.2017, 04:03. Показов 2176. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На писал скрипт который проходит по всем папкам и под папкам и если там есть файлы jpg то с ними делается некая оптимизация. Проблема в том что по папкам и файлам с латинскими именами все работает корректно. А вот с русскими глючит.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
 
import os
import commands
import sys  
 
#------------------------------------------------------------------------
# 
#Основная функция где идёт проход по всем файлам и папкам по пути path
#
#------------------------------------------------------------------------
def core(path, prefix=u''):
    print u'{}(Dir){}'.format(prefix, os.path.basename(path))
    for item in os.listdir(path):
        
        p = os.path.join(path, item)
        p=u''+p
        if os.path.isdir(p):
            core(p, prefix + u'|   ')
        else:
            # Тут идет проверка jpg==True 
            if item.endswith('.jpg')==True or item.endswith('.jpG')==True or item.endswith('.jPg')==True or item.endswith('.Jpg')==True or item.endswith('.JPG')==True:
                
                print u'{}| |--(f){}'.format(prefix, item)#+'\n'+str(os.path.join(path, item))
                commands.getoutput('jpegoptim'+' '+str(os.path.join(path, item)))
            else:
                print u'{}| |--(f skip){}'.format(prefix, item)+str(" This file is not jpg")
 
#------------------------------------------------------------------------
# 
# Разбор параметров командной строки
#
#------------------------------------------------------------------------
if __name__ == "__main__":
    if len (sys.argv) == 1:
        print ("Воспользуйтесь  --help")
    else:
        if (sys.argv[1]) == '--help':
            print ("Этот скрипт для уменьшения размеров фалов jpg без потери качества.")
            print ("Для работы скрипта нужно установить jpegoptim ")
            print ("  ")
            print ("sudo apt install jpegoptim ")
            print ("Скрипт не корректно может работать с Кириллицей ")
            print 'Запуск    ./picture_jpg0.4.py -dir /home/user/pictures'
            print ' '
            sys.exit (1)
 
        if (sys.argv[1]) == '-dir':
            print 'Введите каталог'
            print ''
            print '    ./picture_jpg0.4.py -dir /home/user/pictures'
            print ''            
            if len(sys.argv[2]) > 0:
                dirs=sys.argv[2]
                core(dirs)
                sys.exit (1)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2017, 04:03
Ответы с готовыми решениями:

Создание файла c кириллическими именами
Здравствуйте. У меня такой вопрос, как через php создать файл с названием которое содержит...

Работа с именами папок, написанными в разном регистре.
У меня проблем-ка( Есть база, ок да? Там логин храниться в нижнем регистре - player. Есть папка с...

Количество папок в дереве с полностью кириллическими названиями
Возникла такая проблема. Программа должна обходить дерево папок, начинающееся с той папки, где...

txt файл с именами папок внутри самих папок (в кодировке 1251)
Добрый вечер ) Есть несколько сотен папок, в каждой из которых нужно создать файл album.txt в...

Работа с кириллическими доменами
Здравствуйте. Совсем недавно была открыта регистрация доменов в зоне .рф и в связи с этим...

3
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,360
Записей в блоге: 9
17.06.2017, 08:34 2
А, почему, например, не bash?
Bash
1
jpegoptim /home/user/pictures/*.jpg
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 2
17.06.2017, 16:01  [ТС] 3
Я в баше не силен, а также надо проход по папкам и подпапкам и вывод информации как в скрипте.
0
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,360
Записей в блоге: 9
17.06.2017, 16:08 4
Лучший ответ Сообщение было отмечено Gorsing как решение

Решение

Не сразу заметил, что это второй питон.
Python
1
commands.getoutput(u'jpegoptim %s' % os.path.join(path, item))
Добавлено через 1 минуту
А ещё расширение файла может быть jpеg
0
17.06.2017, 16:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2017, 16:08
Помогаю со студенческими работами здесь

Создание папок с именами из txt
Требуется создать батник, который создает папки с именами из заданного txt. Нашел такой код:...

Создание папок с именами ячеек Excel
Простите если пишу не в этот раздел. Помогите пожалуйсто... В програмировании полный ноль......

Запрет создания папок с определенными именами
День добрый! Возник такой вопрос, есть ли возможность запрещать пользователям создание папок с...

Создание папок с именами столбцов в Excel
Доброго дня! Есть 2 вопроса) 1. Имеется таблица Excel вида: Малышева 8 Марта Восточная...

Восстановление файлов с расположением и именами папок
по какой-то причине внешний хард начал форматироваться, но успел отменить в самом начале. С помощью...

Лог копирования папок с русскими именами
надо скопировать несколько файлов и занести эти операции в протокол. При записи в протокол если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru