Форум сайта python.su
0
Добрый день!
Помогите, пожалуйста, разобраться. Есть прога, которая написана для unix систем. Она анализирует письма в папке на предмет корректности цифровой подписи (DKIM). Мне нужно выполнить её под виндой:
#!/bin/bash
leakfolder="$HOME/temp/mail" # Папка с письмами
fake="$HOME/fake.txt" # Файл, в который пишется список писем, не прошедших проверку
true="$HOME/true.txt" # Файл, в который пишется список писем, прошедших проверку
dkimverify="$HOME/pydkim/dkimverify.py"
!!!!!!!!!!!!!!!!!!!!!!!!!! важный момент
# Путь к скрипту dkimverify.py из пакета pydkim, необходимому для проверки. Брать тут http://hewgill.com/pydkim/
cd "$leakfolder"
find -type f | while read file; do
echo $(basename "$file")
python "$dkimverify" < "$file"
if [[ "$?" == "0" ]]; then
echo $(basename "$file") >> "$true"
ln -s "$file" "$leakfolder/true/$(basename "$file")"
else
echo $(basename "$file") >> "$fake"
fi
done
import os
leakfolder='C:\temp\mail' # Папка с письмами
fake='c:\temp\fake.txt' # Файл, в который пишется список писем, не прошедших проверку
true='c:\temp\true.txt' # Файл, в который пишется список писем, прошедших проверку
dkimverify='c:\temp\pydkim03\dkimverify.py'
dir = 'C:\temp\mail'
names = os.listdir(dir) # список файлов и поддиректорий в данной директории
for name in names:
fullname = os.path.join(dir, name) # получаем полное имя
if os.path.isfile(fullname): # если это файл...
python dkimverify < fullname !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! вот тут ошибка, на слове dkimverify
if [[ "$?" == "0" ]]; then
echo $(basename fullname) >> true
else
echo $(basename fullname) >> fake
fi
done
Отредактировано (Фев. 9, 2012 14:04:56)
Офлайн
568
Сверху форума большими буквами написано
КОД ОБОРАЧИВАТЬ В ТЕГИ
Офлайн
25
У вас изначально - скрипт на shell.
При чем тут python?
И да - то что вы понаписали в python вообще работать не будет.
Офлайн
0
Большое спасибо за помощь, коллеги, её довольно трудно переоценить )))
Если кому-нибудь понадобится, вот работающий код. Не идеальный, конечно, я сегодня впервые увидел python, однако рабочий.
import os
import sys
import dkim
dir = ‘C:\\temp\\mail’ # Папка с письмами
names = os.listdir(dir) # список файлов и поддиректорий в данной директории
for name in names:
fullname = os.path.join(dir, name) # получаем полное имя
if os.path.isfile(fullname): # если это файл…
myfile = open (fullname, “rU”)
if not dkim.verify(myfile.read()):
print fullname + “ fake”
else:
print fullname + “ true”
else:
print “ok”
Отредактировано (Фев. 9, 2012 21:44:38)
Офлайн