Search the Community
Showing results for tags 'python'.
-
Bonjour à tous, J'ai voulu faire un script afin de créer un diaporama avec les images de fond du bureau. Je me suis inspirée du post de Cotaka posté il y a 1 an que j'ai modifié un peu. Voici mon problème, il fonctionne nickel quand je l'exécute depuis la console en tapant: python fond.py par contre si je fais: sudo ./fond.py il se lance correctement mais l'image de fond ne change pas. Quelle est la différence entre ces 2 façons? Car du coup quand il s'exécute avec CronTab, le script s'exécute bien (le fichier .log est correctement modifié) mais le fond ne change pas.. Est-ce que c'est un problème de droits incorrects quand il tente de faire: os.system('gsettings set org.gnome.desktop.background picture-uri "file://'+str(chemin)+str(num_img)+'.jpg"')? voici le code de mon script de diaporama: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Ce script permet de changer le fond d'écran toutes les 15 min avec CronTab Pour le tester depuis la console: ne pas le lancer "sudo ./fond.py" mais "python fond.py" (Pourquoi??) ''' import os # Configuration des variables chemin = '/home/liliana/fond-ecran/' # dossier contenant les img de fond # On compte le nombre d'images de fond qu'il y a dans le dossier nb_img = (len(os.listdir( chemin )) - 3) # on enlève 3 car il y les fichiers fond.py, liscatoi et num-img.log # On va checker ou créer le fichier num-img.log pour connaitre le numéro de l'image de fond en cours if os.path.isfile(chemin+"num-img.log"): print("Le fichier num-img.log existe: on met son contenu ds la variable num_img") fichier = open(chemin+"num-img.log", "r") num_img = fichier.read() fichier.close() else: # num-img.log n'existe pas print("Le fichier num-img.log n'existe pas -> on le créer et on inscrit 1 dedans pour 1ère img") num_img = 1 # on cree la variable fichier = open(chemin+"num-img.log", "a") fichier.write(str(num_img)) fichier.close() # On charge l'image portant le numéro contenu dans $num_img os.system('gsettings set org.gnome.desktop.background picture-uri "file://'+str(chemin)+str(num_img)+'.jpg"') #print('gsettings set org.gnome.desktop.background picture-uri "file://'+str(chemin)+str(num_img)+'.jpg"') print("Image de fond " + str(num_img) + ".jpg chargée..") # Puis on met +1 dans num-img.log num_img = (int(num_img) + 1) if num_img > nb_img: # si le numéro de l'image est > que le nombre d'img dans le dossier alors num_img = 1 # on revient à la 1ère img os.remove(chemin+"num-img.log") # on efface le fichier num-img.log fichier = open(chemin+"num-img.log", "a") # pour le recreer avec + 1 fichier.write(str(num_img)) fichier.close() print("Fichier num-img.log + 1") Un grand merci d'avance :-) (source du post de Cotaka: http://forum.elementaryos-fr.org/topic/1977-résolu-python-mettre-en-background-depuis-le-web-toutes-les-x-secondes)
-
Hello à tous, Je souhaite faire un petit script qui télécharge (wget) une image avec le protocole http toutes les heure et la met en fond d'écran. Mon problème : le script télécharge l'image comme il faut, met l'image en fond d'écran, mais lors du nouveau téléchargement, il ne met plus à jour l'image... J'ai alors pensé que le problème venait du fait que comme le chemin et nom de l'image ne changent pas, il considédrait que c'était la même, alors il ne fait rien. Donc, j'ai fais en sorte qu'un coup sur 2 l'image téléchargée s'appelle respectivement : photo_a.jpg, photo_b.jpg (en prenant soins de supprimer l'image précédente). Il met bien à jour avec les 2 images, le fond changent, mais si entre temps les images photo_a.jpg et photo_b.jpg ont changé il continue de mettre à jour avec les premières versions téléchargées. Comme s'il y avait une histoire de cache... [EDIT] Pour info si ça peut éclairer : je viens de m'apercevoir qu'après déconnexion de la session, l'arrière-plan s'est mis à jour (avec la version 2 cf ci-dessous) Schéma pour mieux comprendre : wget photo_a.jpg (version 1) fond d'ecran devient photo_a.jpg (version 1) wget photo_b.jpg (version 1) fond d'écran devient photo_b.jpg (version 1) wget photo_a.jpg (version 2 (donc mise à jour)) fond d'écran devient photo_a.jpg (version 1) wget photo_b.jpg (version 2) fond d'écran devient photo_b.jpg (version 1) Voici le code : #!/usr/bin/python # -*- coding: utf-8 -*- import time import os # Configuration des variables chemin = '/home/bryan/.local/share/backgrounds' temps = 20 url = 'http://cotaka.net/partage/photo.jpg' while True : if os.path.isfile(''+chemin+'/photo_a.jpg') is False : if os.path.isfile(''+chemin+'/photo_b.jpg') is True : os.system('rm '+chemin+'/photo_b.jpg') os.system('wget -O photo_a.jpg '+url+'') os.system('mv photo_a.jpg '+chemin+'') os.system('gsettings set org.gnome.desktop.background picture-uri "file://'+chemin+'/photo_a.jpg"') time.sleep(temps) else : os.system('rm '+chemin+'/photo_a.jpg') os.system('wget -O photo_b.jpg '+url+'') os.system('mv photo_b.jpg '+chemin+'') os.system('gsettings set org.gnome.desktop.background picture-uri "file://'+chemin+'/photo_b.jpg"') time.sleep(temps) A noter que le temps est bien de 20 secondes pour les tests. Solutions probables : il y aurait-t-il un autre emplacement où stocker l'image qui "surpasserait" un cache quelconque ? il y a-t-il une commande pour forcer la mise à jour du fond d'écran ? il y a-t-il une option à changer pour modifier le comportement de gnome ? Merci par avance pour vos réponses . Bon dimanche à tous.
- 5 replies
-
- python
- background
-
(and 4 more)
Tagged with: