Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: een paar python vragen  (gelezen 3300 keer)

een paar python vragen
« Gepost op: 2008/06/08, 21:43:46 »
jep, daar ben ik weer, scheel aan het kijken van het opzoeken, uitproberen en foutcodes te zien.

ik heb een paar vragen, wat uiteenlopend, maar zal ze toch maar in 1 topic plaatsen lijkt me.

1) om tekstbestanden te kopieren gebruik ik shutil.copyfile(src, dstn) en dat werkt perfect. maar wat als ik bestanden wil gaan kopieren naar een map onder /? hoe kan ik het regelen dat ik ergens mijn "gksudo" kan neerplaatsen?

2) ik heb een kleine config.py gemaakt waar ik een paar dingen in opsla, waaronder ook een dictionary. nu kan de gebuiker zelf een key en value toevoegen, dit doe ik door filedic[new_file] = new_path, en hij voegt dit netjes toe in mijn dictionary. maar kan ik er ook voor zorgen dat deze er in blijven? dus  new_file en new_path in mijn bestande dictionary schrijven?

3) ik wil graag een combobox vullen met alle keys uit dezelfde dictionary als hierboven. hoe krijg ik alle keys eruit? de values heb ik niet nodig.


alvast bedankt.

Offline charclo

  • Lid
een paar python vragen
« Reactie #1 Gepost op: 2008/06/08, 22:42:36 »
1. Geen idee

2. Bedoel je hiermee dat je de dictionary naar een bestand wil wegschrijven? Kijk dan hier eens http://effbot.org/librarybook/configparser.htm

3. dic = { "key1": "value1", "key2": "value2"}
dic.keys()
['key2', 'key1']
HP Pavilion dv6660eb - Intel Core 2 Duo T7250 2 GHz - 2 GB ram - Nvidia GeForce 8400M GS 128 MB --> Dualboot Ubuntu en Windows Vista
P4 2.6 GHz - 1GB ram - NVIDIA GS7600 - 20 inch Benq widescreen --> Dualboot Ubuntu en Windows XP

een paar python vragen
« Reactie #2 Gepost op: 2008/06/08, 22:49:04 »
ahja, even vergeten erbij te zeggen, stel dat ik niet weet hoeveel en welke keys erinzitten. dus als gebruikers zelf hun keys en values erin zetten, weet ik niet welke natuurlijk.

Offline BailHope

  • Lid
    • Techneut
een paar python vragen
« Reactie #3 Gepost op: 2008/06/08, 22:59:08 »
Ik neem aan dat je voor die dictionary wel een for-lus kan schrijven die gewoon elk element overloopt in deze dictionary.
Persoonlijk niet echt ervaring met Python,
maar iets in deze aard:

    for key in self.someclass.keys():
       ( do something )

Op deze manier hoef je niet te weten hoeveel items er zich precies in de dictionary bevinden. De for lus gaat erover tot hij aan het laatste item komt.

Hopelijk was het een hulp!
Spijtig genoeg kan ik geen antwoord geven op je andere vragen.
Ubuntu user #12046
Mijn blog voor techneuten: http://techneut.wordpress.com
Voor de professionele IT'er: http://it-potato.blogspot.com

een paar python vragen
« Reactie #4 Gepost op: 2008/06/08, 23:59:54 »
heel erg bedankt, dit doet het em. dan vind ik allemaal ingewikkelde methodes die het niet doen, en dan is dit de oplossing...

een paar python vragen
« Reactie #5 Gepost op: 2008/06/09, 12:39:46 »
ok, nummer 2 is ook opgelost. ik gebruik geen python bestand meer voor mijn configuratie, maar ik lees een tekstbestand uit met configparser, en dat werkt perfect tot nu toe.

alleen voor vraag 1 kan ik nog geen antwoord vinden.

deKeijzer

  • Gast
een paar python vragen
« Reactie #6 Gepost op: 2008/06/09, 12:49:47 »
Citaat van: Nunslaughter
ok, nummer 2 is ook opgelost. ik gebruik geen python bestand meer voor mijn configuratie, maar ik lees een tekstbestand uit met configparser, en dat werkt perfect tot nu toe.

alleen voor vraag 1 kan ik nog geen antwoord vinden.
Als je zulke acties wil doen zul je je script zelf root-rechten moeten geven. Dus
sudo python jescript.py

een paar python vragen
« Reactie #7 Gepost op: 2008/06/09, 13:24:46 »
dat is net wat ik niet wil. ik wil geen heel programma als root draaien als het maar voor 1 commando nodig is.

Offline profoX

  • Lid
    • wesley
    • Lionslink
een paar python vragen
« Reactie #8 Gepost op: 2008/06/09, 14:16:02 »
Misschien wil je iets met PolicyKit? http://en.wikipedia.org/wiki/PolicyKit
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline charclo

  • Lid
een paar python vragen
« Reactie #9 Gepost op: 2008/06/09, 14:20:48 »
Ik denk toch dat dit de enige manier is. Of mss zal je je eens moeten verdiepen in PolicyKit, hier komen python bindings voor maar er is nog niet veel over te vinden op internet.

:) juist te laat
HP Pavilion dv6660eb - Intel Core 2 Duo T7250 2 GHz - 2 GB ram - Nvidia GeForce 8400M GS 128 MB --> Dualboot Ubuntu en Windows Vista
P4 2.6 GHz - 1GB ram - NVIDIA GS7600 - 20 inch Benq widescreen --> Dualboot Ubuntu en Windows XP

een paar python vragen
« Reactie #10 Gepost op: 2008/06/09, 14:25:43 »
kan het niet zoals ik eigenlijk ook doe om een bestand te openen? bijvoorbeeld: os.system('gksudo gedit /boot/grub/menu.lst')

alleen voor een bestand te kopieren gebruik ik dus shutil.copy().

deKeijzer

  • Gast
een paar python vragen
« Reactie #11 Gepost op: 2008/06/10, 18:53:45 »
Citaat van: Nunslaughter
kan het niet zoals ik eigenlijk ook doe om een bestand te openen? bijvoorbeeld: os.system('gksudo gedit /boot/grub/menu.lst')

alleen voor een bestand te kopieren gebruik ik dus shutil.copy().
Door ook os.system('') te gebruiken en daarin je copy command (met sudo) te doen wellicht?

een paar python vragen
« Reactie #12 Gepost op: 2008/06/10, 20:20:46 »
lukt niet, waarschijnlijk omdat os.system() voor (systeem)commandos gebruikt word en shutill.copyfile() een python module is.
of als gij het voor elkaar krijgt op die manier wil ik het graag weten.