Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Tiedoston suoritusaika

Macro [15.06.2010 19:30:21]

#

Moi!

Mulla on Python skripti, joka päivittää dy.fi-osoitteen ja kirjaa päivitysajankohdan tiedostoon.

import urllib.request
import base64
from time import time

encodedstring = base64.b64encode(b"x:x")[:-1]
auth = "Basic " + str(encodedstring)

tiedosto = open("paivityshistoria.txt", "r+")

s = urllib.request.Request("http://www.dy.fi/nic/update?hostname=x.dy.fi", None, {"Authorization": auth })
tiedosto.write("\n" + str(int(time())))

tiedosto.close()

Tämä toimii, mutta miten saisin Windowsin suorittamaan tätä 24 tunnin välein? (Kyseessä olisi Windows Server 2008 R2, mutta jos tiedätte jollekkin muulle Windowsille sopivan tavan, voin ottaa sen vastaan ja miettiä miten saisin sen toimimaan Windows Server 2008:lla.)

Onhan tietenkin esimerkiksi tälläinen (http://www.karenware.com/powertools/ptoad.asp) ohjelma, mutta mieluiten jättäisin sen asentamatta ja käyttäisin Windowsin omia palikoita.

-tossu- [15.06.2010 19:55:43]

#

Ohjauspaneelista löytyy tehtävien ajoitus, jolla tuon hoitaa kätevästi ilman lisäpalikoita.

Macro [15.06.2010 21:44:15]

#

Kiitos tiedosta. En ollut huomannutkaan tuollaista kohtaa ennen. Tosin se ei löytynyt mainitsemastasi paikasta, mutta löysimpä kumminkin.

Muokkaus. Koodi toimii (muokkaus. ainakin niin luulin: ohjelma suoritetaan, mutta dy.fi palveluun ei tule muutosta. (tarkistin ajan perusteella, koska kun se päivitetään, pitäisi ajan tulla täyteen seitsemään viikkoon)), ja Windows ilmoitti, että tehtävä on suoritettu. Kuitenkaan dy.fi-tunnus ei päivittynyt. Mitä pitäisi tehdä? Ohjelman polkun on oikea, käyttäjällä on lupa suorittaa se, koneessa on Python tulkki.

Metabolix [16.06.2010 10:50:11]

#

Oletko varma, että skriptisi toimii oikein? Tarkista dy.fi:n lähettämä vastaus, siitä pitäisi nähdä, mikä on pielessä.

Macro [16.06.2010 10:56:30]

#

Miten luetaan urllib.request.Request():n palauttama vastaus? read() ei toiminut, tai mikään get_data().

Metabolix [16.06.2010 11:03:40]

#

Vilkaisin nyt dokumentaatiota, ja siitä näin suoraan, että skriptisi ei oikeasti edes tee mitään. Ehkä sinunkin kannattaisi lukea uudestaan.

s = urllib.request.Request(...)
f = urllib.request.urlopen(s)
print(f.read())

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta