Код: Выделить всё
#!/bin/bash
if [ $(file -b --mime-encoding $TMP) == "iso-8859-1" ]; then
iconv -f cp1251 -t utf-8 $TMP -o $TMP
fiМодератор: Модераторы разделов
Код: Выделить всё
#!/bin/bash
if [ $(file -b --mime-encoding $TMP) == "iso-8859-1" ]; then
iconv -f cp1251 -t utf-8 $TMP -o $TMP
fiКод: Выделить всё
import os
os.system("if [ $(file -b --mime-encoding " + tmp + " ) == 'iso-8859-1' ]; then iconv -f cp1251 -t utf-8 " + tmp + " -o " + tmp + "; fi")Код: Выделить всё
[: 1: us-ascii: unexpected operatorВызов шела из питона есть это все. Просто в команду мы добавляем содержимое переменных питона, а не баша. И вообще это нормальное явление - если вы что-то делаете через bash.
не, не, не... ну по отлаживайте, все будет работать. но не все же мне за вас делать.
C10H15N писал(а): ↑22.07.2010 00:33>я бы сделал просто: ...
Не работает, через os.system я уже пробвалДа + это некомильфо, не питон а вызов шелла из питона, получается.Код: Выделить всё
[: 1: us-ascii: unexpected operator
Я не вдумывался.
Код: Выделить всё
vasiliy@linux-0un3:~> python
Python 2.6.5 (r265:79063, Jul 5 2010, 11:46:13)
[GCC 4.5.0 20100604 [gcc-4_5-branch revision 160292]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> k = subprocess.Popen(["file", "-b", "--mime-encoding", "/home/vasiliy/test1"], stdout=subprocess.PIPE).communicate()[0]
>>> k
'iso-8859-1\n'
>>> if k == 'iso-8859-1\n':
... print "ok.converting"
...
ok.convertingКод: Выделить всё
kode = os.popen('file -b --mime-encoding "%s"' % tmpA).read()
if kode == 'iso-8859-1\n':
deko = open(tmpA, 'rb')
content = unicode(deko.read(), 'cp1251')
deko.close()
deko = open(tmpA, 'wb')
deko.write(content.encode('utf-8'))
deko.close()