none
cmd и кодировка RRS feed

  • Вопрос

  • есть прога на питоне 2.7
    . при запуске дает следующий результат:


    cmd

    C:\Python27\python C:\INDXParse-master\INDXPARSE.py C:\123\000108020096.indx
    FILENAME,       PHYSICAL SIZE,  LOGICAL SIZE,   MODIFIED TIME,  ACCESSED TIME,
    CHANGED TIME,   CREATED TIME
    "-_MPEG~1.M2P", 18374656,       18372612,       2009-01-27 13:58:48.328125,
    2013-09-24 10:25:45.674709,     2016-05-12 16:13:59.627857,     2013-09-24 10:25
    :45.674709
    "ONENOT~1.ONE", 4096,   3656,   2012-06-23 18:06:55.513105,     2013-09-24 10:25
    :49.793118,     2016-05-12 16:13:59.627857,     2013-09-24 10:25:49.793118
    "_M4177~1.M2P", 203882496,      203880452,      2009-01-27 14:12:47.390625,
    2013-09-24 10:25:53.630724,     2016-05-12 16:13:59.627857,     2013-09-24 10:25
    :53.630724
    "_MPEG2~1.M2P", 121606144,      121602052,      2009-01-27 14:02:40.359373,
    2013-09-24 10:25:41.993103,     2016-05-12 16:13:59.626858,     2013-09-24 10:25
    :41.993103
    "_MPEG2~2.M2P", 86085632,       86083588,       2009-01-27 14:02:33.453125,
    2013-09-24 10:25:46.236311,     2016-05-12 16:13:59.627857,     2013-09-24 10:25
    :46.236311
    "_MPEG2~3.M2P", 34689024,       34684932,       2009-01-27 14:04:07.312498,
    2013-09-24 10:25:48.763515,     2016-05-12 16:13:59.627857,     2013-09-24 10:25
    :48.763515
    "_MPEG2~4.M2P", 130686976,      130684932,      2009-01-27 14:09:33.703125,
    2013-09-24 10:25:49.808718,     2016-05-12 16:13:59.627857,     2013-09-24 10:25
    :49.808718
    "больница Никонов_MPEG2.m2p",   121606144,      121602052,      2009-01-27 14:02
    :40.359373,     2013-09-24 10:25:41.993103,     2016-05-12 16:13:59.626858,
    2013-09-24 10:25:41.993103
    "Вывод воиск  б-з_MPEG2.m2p",   18374656,       18372612,       2009-01-27 13:58
    :48.328125,     2013-09-24 10:25:45.674709,     2016-05-12 16:13:59.627857,
    2013-09-24 10:25:45.674709
    "Молебен в Н.Афоне М.Кокоскир_MPEG2.m2p",       86085632,       86083588,
    2009-01-27 14:02:33.453125,     2013-09-24 10:25:46.236311,     2016-05-12 16:13
    :59.627857,     2013-09-24 10:25:46.236311
    "Синхрон Медведев _MPEG2.m2p",  34689024,       34684932,       2009-01-27 14:04
    :07.312498,     2013-09-24 10:25:48.763515,     2016-05-12 16:13:59.627857,
    2013-09-24 10:25:48.763515
    "Содержание OneNote.onetoc2",   4096,   3656,   2012-06-23 18:06:55.513105,
    2013-09-24 10:25:49.793118,     2016-05-12 16:13:59.627857,     2013-09-24 10:25
    :49.793118
    "Теракт в Гали_MPEG2.m2p",      130686976,      130684932,      2009-01-27 14:09
    :33.703125,     2013-09-24 10:25:49.808718,     2016-05-12 16:13:59.627857,
    2013-09-24 10:25:49.808718
    "трофеи Никонов_MPEG2.m2p",     203882496,      203880452,      2009-01-27 14:12
    :47.390625,     2013-09-24 10:25:53.630724,     2016-05-12 16:13:59.627857,
    2013-09-24 10:25:53.630724

     НО!!! файлов очень много ()
    и было принято решение вывести результат в текстовый файл командой C:\Python27\python C:\INDXParse-master\INDXPARSE.py C:\123\000108020096.indx >C:\test2.txt

    однако результат получился плачевный: 

    FILENAME, PHYSICAL SIZE, LOGICAL SIZE, MODIFIED TIME, ACCESSED TIME, CHANGED TIME, CREATED TIME
    "-_MPEG~1.M2P", 18374656, 18372612, 2009-01-27 13:58:48.328125, 2013-09-24 10:25:45.674709, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:45.674709
    "ONENOT~1.ONE", 4096, 3656, 2012-06-23 18:06:55.513105, 2013-09-24 10:25:49.793118, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:49.793118
    "_M4177~1.M2P", 203882496, 203880452, 2009-01-27 14:12:47.390625, 2013-09-24 10:25:53.630724, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:53.630724
    "_MPEG2~1.M2P", 121606144, 121602052, 2009-01-27 14:02:40.359373, 2013-09-24 10:25:41.993103, 2016-05-12 16:13:59.626858, 2013-09-24 10:25:41.993103
    "_MPEG2~2.M2P", 86085632, 86083588, 2009-01-27 14:02:33.453125, 2013-09-24 10:25:46.236311, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:46.236311
    "_MPEG2~3.M2P", 34689024, 34684932, 2009-01-27 14:04:07.312498, 2013-09-24 10:25:48.763515, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:48.763515
    "_MPEG2~4.M2P", 130686976, 130684932, 2009-01-27 14:09:33.703125, 2013-09-24 10:25:49.808718, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:49.808718
    "???????? ???????_MPEG2.m2p (error decoding filename)", 121606144, 121602052, 2009-01-27 14:02:40.359373, 2013-09-24 10:25:41.993103, 2016-05-12 16:13:59.626858, 2013-09-24 10:25:41.993103
    "????? ?????  ?-?_MPEG2.m2p (error decoding filename)", 18374656, 18372612, 2009-01-27 13:58:48.328125, 2013-09-24 10:25:45.674709, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:45.674709
    "??????? ? ?.????? ?.????????_MPEG2.m2p (error decoding filename)", 86085632, 86083588, 2009-01-27 14:02:33.453125, 2013-09-24 10:25:46.236311, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:46.236311
    "??????? ???????? _MPEG2.m2p (error decoding filename)", 34689024, 34684932, 2009-01-27 14:04:07.312498, 2013-09-24 10:25:48.763515, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:48.763515
    "?????????? OneNote.onetoc2 (error decoding filename)", 4096, 3656, 2012-06-23 18:06:55.513105, 2013-09-24 10:25:49.793118, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:49.793118
    "?????? ? ????_MPEG2.m2p (error decoding filename)", 130686976, 130684932, 2009-01-27 14:09:33.703125, 2013-09-24 10:25:49.808718, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:49.808718
    "?????? ???????_MPEG2.m2p (error decoding filename)", 203882496, 203880452, 2009-01-27 14:12:47.390625, 2013-09-24 10:25:53.630724, 2016-05-12 16:13:59.627857, 2013-09-24 10:25:53.630724

    Что делать? 

     Вариант через chcp я пробовал, не помогает, вариант: 

    @echo off
    chcp 855
    cls
    ping /? >test.txt

    тоже не помог, не справился и вариант:

    @echo off
    setlocal
    1>nul chcp 1251

    for /f "tokens=*" %%i in ('C:\Python27\python C:\INDXParse-master\INDXPARSE.py C:\123\000108020096.indx >C:\test2.txt') do call:echo "%%i"

    goto:eof

    :echo
    if %1=="" (1>>test2.txt echo. && goto:eof)

    1>nul chcp 1251

    set "str=%~1"
    set "str=%str:/=^/%"
    set "str=%str:>=^>%"
    set "str=%str:<=^<%"

    1>nul chcp 866

    1>>test2.txt echo %str%

    6 апреля 2017 г. 15:26

Ответы

  • Вопрос решен: помещением кода 

    reload(sys)
    sys.setdefaultencoding('utf-8')

    сразу после ВСЕХ import в начале файла, до основного куска кода

    • Предложено в качестве ответа Vector BCOModerator 7 апреля 2017 г. 11:24
    • Помечено в качестве ответа Anton Sashev Ivanov 19 апреля 2017 г. 7:34
    7 апреля 2017 г. 11:09

Все ответы