| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Python] Помогите переписать Bash-скрипт на Python |
| Автор: buddser 20.2.2010, 19:31 |
| Случайно в нете нашел скрипт который мне нужно написать на питоне... Но к сожалению он на баше... в баше к сожалению не очень хорошо разбираюсь... как в общем и в питоне... Помогите переписать скриптна питон пожалуйста. Или хотя бы расскажите как он работает этот баш скрипт... чтобы я смог найти аналогичные функции в питоне. Спасибо за любую помощь! Скрипт номер раз touch container.dmc shred -n1 -s50M container.dmc losetup /dev/loop0 ./container.dmc cryptsetup -y create X /dev/loop0 mkfs /dev/mapper/X Скрипт номер два #!/bin/bash LABEL=X; LOOPD=/dev/loop0; MNTPT=/media/Disk_$LABEL; CCNTR=/media/FAFE-47E0/container.dmc; start() { echo ' '; echo '----- Mount CryptoContainer ['$CCNTR'] ---------------------'; /sbin/losetup $LOOPD $CCNTR; /sbin/cryptsetup create $LABEL $LOOPD; mkdir $MNTPT; mount -t ext2 /dev/mapper/$LABEL $MNTPT; MLINE=`mount | grep $MNTPT`; if [ -n "$MLINE" ]; then echo "Label :: [$LABEL]; $CCNTR --> $MNTPT; [on $LOOPD]"; echo '----- Mount CryptoContainer Complete ! ---------'; else echo '----- ERROR - Bad password -----------------'; stop; fi echo ' '; } stop() { echo ' '; echo '----- Unmount CryptoContainer ['$CCNTR'] --------------------'; sync; umount $MNTPT; /sbin/cryptsetup remove $LABEL; /sbin/losetup -d $LOOPD; DLINE=`ls -A $MNTPT`; if [ -n "$DLINE" ]; then echo '----- CryptoContainer cannot be unmouted !!! ------'; else rm -rf --one-file-system $MNTPT; echo '----- Unmount CryptoContainer Complete ! ---------'; fi echo ' '; } case "$1" in start) start;; stop) stop;; *) MLINE=`mount | grep $MNTPT`; if [ -n "$MLINE" ]; then stop; else stop; clear; start; fi esac exit 0; то что сам нахожу буду по тихоньку тоже писать... Эта строка заменяет touch из первого скрипта import os if not os.path.exists('container.dmc'): open('container.dmc', 'w').close() Вот такая строка на питоне: os.system("shred -n1 -s50M container.dmc") Заменит вот такую на баше: shred -n1 -s50M container.dmc Сразу оговорюсь я хотел бы использовать функции питона... а не работать через os.system... Но пока, за неимением лучшего, так. вот нашел тот вариант который меня устраивает...(забивает случайной последовательностью файл размером в 50 мб) open('container.dmc','wb').write( ''.join([chr(randrange(0,256)) for x in xrange(50000000)]) ) |
| Автор: Daevaorn 20.2.2010, 19:46 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: buddser 21.2.2010, 17:19 |
| А тут бывают что отвечают? просто я на несколько форумов разместил... на этом единственном никто ничего не пишет... |