Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> wc -c, wc -c 
:(
    Опции темы
Pseex
Дата 2.7.2015, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 24.9.2008

Репутация: нет
Всего: нет



Приветствую!

В чем подвох?

Код

In [47]: p = subprocess.Popen("wc -c", shell=True, stdin=subprocess.PIPE)

In [48]: p.communicate("a")
1
Out[48]: (None, None)

In [49]: !echo a | wc -c
2

In [50]: from __future__ import with_statement

In [51]: with open('temp.txt','w') as file:
   ....:     file.write('a')
   ....:     

In [52]: file = open('temp.txt')

In [53]: f = file.read()

In [54]: p = subprocess.Popen("wc -c", shell=True, stdin=subprocess.PIPE)

In [55]: p.communicate(f)
1
Out[55]: (None, None)

In [56]: !wc -c < temp.txt
1



Это сообщение отредактировал(а) Pseex - 2.7.2015, 15:47
PM MAIL ICQ   Вверх
BSOD
Дата 28.7.2015, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 1.11.2004
Где: Гомель

Репутация: нет
Всего: 3



Дело в символе конца строки

echo "a" на самом деле выводит два символа ("a" и конец строки)
file.write() (как и communicate) шлет только "a"

если вдруг актуально smile


--------------------
как корабль назовешь - то на нем и напишешь
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0725 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.