Szkriptek: Python, Perl, Bash, ...

Libreoffice Calc VBA / dátum megjelenített értékének kiolvasása

Sziasztok, hogyan tudom kiolvasni egy cellában lévő dátum megjelenített szöveges értékét a numerikus reprezentációja helyett? Előbbi értéke egy szöveg: "2012-01-01", utóbbi értéke egy egész szám: "40909".

Saját függvényhez kell. Példa:

public function tt( myrange as variant )
    a = myrange(0,0)
    msgbox(a)
end function

Ha egy cellába ezt a függvényt adom "=TT(A1)" és A1 értéke "2012-01-01", akkor az "a" változó értéke nem "2012-01-01" lesz hanem "40909". Nekem az előbbi kellene.

Az vajon a gond hogy a myrange már csak egy tömb aminek nincsenek lekérhető tulajdonságai metódusokkal, ugyanis ez nem működik: myrange(0,0).value vagy myrange(0,0).formula.

Hogyan tudnám elérni a függvényemből a megjelenített string értékét? Nekem a dátum formátum kell. Ugyanis nem eldönthető a sima integer-ről hogy az egy számból jött vagy egy dátumból.

Ötlet? Köszi.

[megoldva] Pexpect és Cisco

Sziasztok, reggel óta ezzel küzdök, már lassan begolyózok.

Egy cisco switchnek szeretnék küldeni néhány parancsot, és feldolgozni a kimenetét.

A kódom:

import os
from pexpect import pxssh
import sys

child=pxssh.pxssh()
child.logfile = open('plog.log', 'wb')
child.login('10.0.0.1', 'cisco', 'cisco' , auto_prompt_reset=False)
child.sendline('term len 0')
child.expect('#')
child.sendline('show int desc')
child.expect('#')
print(child.before)

A kimenet egy barátságos

b''
 

 

A log file tartalma:

Testswitch#

Testswitch#

Testswitch#

Testswitch#

Testswitch#term len 0
show int desc

Én értettem valamit félre? A child.before -nak vissza kellene adnia a sh int desc kimenetét.

pexpect (4.8.0)

Python 3.4.10

Interpreterben tesztelve a child.read() kiadja a kívánt kimenetet...

Van valakinek ötlete, merre tovább?

Minden szám ami nem IP

Sziasztok,

Nem jutok előrébb, egy log fájlból kellene kiszednem paracssorban minden számot ami min 9 karakter hosszú. (lehet benne space, ".", és "-") de nem az IP.

Arra gondoltam valahogy szűrnöm kellene az IP 4-es formátumot, de nem tudom ,hogy lehetne ráilleszteni a kifejezésre.

Ezt ne nézze /((\d{1,3}\.){3}(\d{1,3}))/

de ezt keresse /([\d \(\)\.\-]{6,})/

Lehetséges, hogy ezt nem lehet egy lépésben megoldani?

 

Ahogy néztem nem lehet csak 2-es csoportot kinyerni grep-el.

grep -E "(([0-9]{1,3}\.){3}[0-9]{1,3})|([0-9 \(\)\.\-]{6,})" data.log

[MEGOLDVA]Python time.sleep

        counter = 1
        while True:
                try:
                    custom_function
                    print('custom function OK')
                    break
                except:
                    if (counter > 3000):
                        print('custom function is NOT OK')
                        time.sleep(1)
                        return int(2)
                    else:
                        print(counter)
                        counter += 1
                        continue

hello

nagyon fura dologgal találtam szembe magam. a time.sleep(n) nem vár másodpercet hanem iteráció sebességével pörög. a kód részlet egy 3.5.2 python enginel hajtódik végre.

nem értem, ha indítok egy 3.5.2 py console-t és ott futtatom akkor simán működik és másodpercet vár nem iterációt.
 

bash szkript kacsolókkal

Írtam egy bash szkriptet mely kapcsolókkal működik. Ha rossz kapcsolót adok meg kiírja hogy nem jó, és a súgó lehetőséget. Hogy tudom megoldani azt, ha kapcsoló nélkül indítom, akkor is kiírja a súgót?

while [ "$#" -gt "0" ]; do
    case "${1}" in
         --a) blabla; shift;;
         --b) blabla; shift;; 
         --c) blabla; shift;;
         --h|--help)
              printf "itt a súgó"
         *) printf "Ismeretlen kapcsoló ${1}\nSúgó: command --h(elp)\n"
         exit ;;
    esac
done

[megoldva] Python változó láthatósága

Elég basic téma, tudom, de mégis belefutottam.

Ez a kis python program hogyhogy nem írja ki az alábbi hibaüzenetet?

local variable 'a' referenced before assignment

Van ennek valami méretkorlátja? Ha ugyanez a szitu egy nagyobb programban kerül elő, nemcsak warning jön, hanem lehal a futás a fenti hibaüzenettel, ha nem írom ki explicite a függvényben, hogy global a.

a=2

def perform_strategy():
    print('a:', a)
    return

for x in range(0, 2):
    perform_strategy()

megoldva, köszönöm - python 3 ssh klienst ajánljatok jó szívvel - paramiko

Szervusztok!

Lehet hogy túl sok igényem van, hogy

- py2-t már csak ne új projektbe,

- kulcsot képes legyen kezelni,

- menjen egyedi port-ra is,

- adjon std.err output-ot,

- élő projekt megfelelő karbantartással legyen mögötte,

- megoldott legyen benne az scp is,

Ezt az oldalt már kidobta a kereső, de nem vagyok vele előrébb,

https://wiki.python.org/moin/SecureShell

mert a spur kiesik a std.err-al,

a paramiko kiesik, mert nem megy 22-n kívül más port-ra

a többi meg - legyen külső bináris és csövezzem be?

Kösz az ajánlást, javaslatot, stb!

Üdv,

vfero

útvonal kinyerése konfigurációs fájlból

ezKellNekem="$HOME/myDir1/myDir2"

Egy conf fájlban van egy elnevezés, meg egy a felhasználó által beállítható útvonal. Egy másik szkriptnek szüksége van erre az útvonalra. 
Hogyan tudnám értelmezhető formában kimásolni onnan? A conf fájl helye ismert, tehát ki tudom elemezni grep, sed, awk segítségével.
Meg is kapom az útvonalat, csakhogy ez, a meghívó szkript számára értelmezhetetlen, mert egy stringet kapott per jelekkel, útvonal helyett.

Hogy tudom ezt megoldani?

A meghívó szkript majd be akar lépni erre az útvonalra. Így nem tud. 

Persze lehetne a source parancsot használni, de a conf fájlban lévő többi adatra most nincs szükség.

pipe viewer pozíció

Egy parancs kimenetét monitorozom a pv paranccsal. A --timer kapcsoló teszi is a dolgát, de jó lenne ha adott helyen tenné ezt. Teszem azt:

echo -n "Folyamat vége: " pv kinenet - Elvileg az ansi szekvenciák használata segít.

pv --timer --cursor '\033[24;97'

Ez nem működik. A man szerint :

-c, --cursor
             Use cursor positioning escape sequences instead of just using carriage returns.  This is useful in conjunction with -N (name) if you are
             using multiple pv invocations in a single, long, pipeline.
Itt hogyan segít nekem az N név amikor csak egy pv hívás van?