Ответы пользователя по тегу Python
  • Как сделать чтобы окно командной строки не закрывалось после выполнения скрипта, чтобы отловить ошибку?

    @blayloock012018
    чтоб не париться вставками, есть у питона какая-то команда, требующая диалога, как у яваскипта inpit_question . На stackoverflow есть где-то. Или вообще time.sleep(10) поставитью

    Если постоянно работать с окно командной строки, тогда надо чего-то такое управляемое окно сделать. Сам будешь решать, будет закрываться или ожидать закрытия. Для этого лучше subprocess

    #~ import subprocess
    #~ runcmd='telnet /?'
    #~ p = subprocess.Popen(runcmd, bufsize=2048, shell=True,
        #~ stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    Ответ написан
    Комментировать
  • Как преобразовать строки из символов '\u0434\u0438…' в переменной в Питоне 2.7(Windows 7)?

    @blayloock012018
    Сейчас можно подправить так
    a = u'1a'
    a = a.decode('utf-8').encode('cp1251') 
    print a
    
    a = u'1\u0430'
    a = a.encode('UTF-8').decode('UTF-8').encode('cp1251')
    print a
    
    #~ Не нужно путать юникод и UTF-8 !!! utf-8, как и cp1251 с точки зрения питона2.* - массив байт.


    Подробнее тут py-my.ru/post/4bfb3c6a1d41c846bc00009b

    На будущее, пригодится определение кодировки. Например, если почтовый ящик читать питоном. В навалку всевозможные кодировки. Может пригодиться функция определения уодировки

    msg=u'1\u0430'
    
    if len(str(msg))!==0
        if isinstance(msg, unicode):
            #~ print type(msg)
            #~ print encodings(get_codepage(msg))
            print msg.encode('UTF-8').decode('UTF-8').encode('cp1251')
        else:
            if get_codepage(msg)=='UTF-8':
                print msg.decode('UTF-8').encode('cp1251')
            else:
                print msg
    
    
    
    
    encodings = {
        'UTF-8':      'utf-8',
        'CP1251':     'windows-1251',
        'KOI8-R':     'koi8-r',
        'IBM866':     'ibm866',
        'ISO-8859-5': 'iso-8859-5',
        'MAC':        'mac',
    }
    
    def get_codepage(str = None):
        uppercase = 1
        lowercase = 3
        utfupper = 5
        utflower = 7
        codepages = {}
        for enc in encodings.keys():
            codepages[enc] = 0
        if str is not None and len(str) > 0:
            last_simb = 0
            for simb in str:
                simb_ord = ord(simb)
    
                """non-russian characters"""
                if simb_ord < 128 or simb_ord > 256:
                    continue
    
                """UTF-8"""
                if last_simb == 208 and (143 < simb_ord < 176 or simb_ord == 129):
                    codepages['UTF-8'] += (utfupper * 2)
                if (last_simb == 208 and (simb_ord == 145 or 175 < simb_ord < 192)) \
                    or (last_simb == 209 and (127 < simb_ord < 144)):
                    codepages['UTF-8'] += (utflower * 2)
    
                """CP1251"""
                if 223 < simb_ord < 256 or simb_ord == 184:
                    codepages['CP1251'] += lowercase
                if 191 < simb_ord < 224 or simb_ord == 168:
                    codepages['CP1251'] += uppercase
    
                """KOI8-R"""
                if 191 < simb_ord < 224 or simb_ord == 163:
                    codepages['KOI8-R'] += lowercase
                if 222 < simb_ord < 256 or simb_ord == 179:
                    codepages['KOI8-R'] += uppercase
    
                """IBM866"""
                if 159 < simb_ord < 176 or 223 < simb_ord < 241:
                    codepages['IBM866'] += lowercase
                if 127 < simb_ord < 160 or simb_ord == 241:
                    codepages['IBM866'] += uppercase
    
                """ISO-8859-5"""
                if 207 < simb_ord < 240 or simb_ord == 161:
                    codepages['ISO-8859-5'] += lowercase
                if 175 < simb_ord < 208 or simb_ord == 241:
                    codepages['ISO-8859-5'] += uppercase
    
                """MAC"""
                if 221 < simb_ord < 255:
                    codepages['MAC'] += lowercase
                if 127 < simb_ord < 160:
                    codepages['MAC'] += uppercase
    
                last_simb = simb_ord
    
            idx = ''
            max = 0
            for item in codepages:
                if codepages[item] > max:
                    max = codepages[item]
                    idx = item
    return idx
    Ответ написан
    5 комментариев
  • Как запустить python скрипт из html?

    @blayloock012018
    1. запустить python скрипт из html на OpenServer
    -----------------index.py
    #!D:\Python27\python.exe
    # -*- coding: UTF-8 -*-
    # //coding: utf-8
    # coding=utf-8
    # vim: set fileencoding=utf-8 :
    print "Content-Type: text/html\r\n"
    print "hello world"
    print "вместо #! python2 можно d:/Python27/python.exe"

    -------------.htaccess
    DirectoryIndex index.py
    Options +FollowSymLinks +ExecCGI

    -------------.httpd.conf: (найти строку AddHandler )
    AddHandler cgi-script .cgi .pl .py

    2. запустить python скрипт из html на хостинге для python , например timeweb
    -----------------index.py
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # //coding: utf-8
    # coding=utf-8
    # vim: set fileencoding=utf-8 :
    print "Content-Type: text/html\r\n"
    print "hello world"

    -------------.htaccess
    DirectoryIndex index.py
    Options +FollowSymLinks +ExecCGI

    права доступа rwx------ (700) для py , иначе error500
    Ответ написан