fichiers modifiés après une date

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
OUTAN30
Messages : 3
Enregistré le : mer. 8 déc. 2021 15:11

fichiers modifiés après une date

Message par OUTAN30 » mer. 8 déc. 2021 15:34

Hello, par avance je tien a préciser que je suis un total noobs en code et en linux....

donc voila mon problème, sur un raspberry pi, je voudrais copier une série de fichiers modifier après une certaine date, la modification d'un precedent fichier.

j'ai deja réussi a trouver la date de modification de mon fichier initial, avec "os.path.getmtime" qui me renvois un float mais je ne trouve pas vraiment de moyen de cree une liste de fichier modifier après ce timecode.

Par avance merci pour vos idées et piste de recherche

jelopo
Raspinaute
Messages : 307
Enregistré le : mer. 11 oct. 2017 10:23

Re: fichiers modifiés après une date

Message par jelopo » mer. 8 déc. 2021 20:46

Bonjour,

Petite question pour plus de précision :
Il semble que tu t'oriente vers Python, c'est impératif ou pas ?

En bash il existe la commande find, rechercher l'option newer dans

Code : Tout sélectionner

man find
A+

piper
Raspinaute
Messages : 641
Enregistré le : sam. 5 juin 2021 18:57

Re: fichiers modifiés après une date

Message par piper » mer. 8 déc. 2021 22:29

jelopo a raison : en ligne de commande, find, avec une redirection de donnerait la liste des fichiers directement.

Mais si python est imposé : rappel de la documentation : os.path.getmtime te donnes la date/heure de dernière modification d'un fichier sous la forme de secondes (eb nombre décimal... float) écoulé depuis le 1er janvier 1970 0h00:00 UTC
Disposer d'un nombre est la MEILLEUR solution pour comparer 2 date/heure

Mais pour une affichage destiner à un humain
on peut transformer cette valeur en date/heure (et notamment en heure locale), en utilisant la fonction time.ctime

Ex :

Code : Tout sélectionner

import time
ftime=1558447890.00  // ce que peux te donner getmtime()
local_time = time.ctime(ftime)   //transformation en date et heure locale sous la forme d'une chaîne de caractère
print(local_time)
tu verrais afficher :
Tue May 21 19:41:30 2019
Ce qui ne te sera pas d'une grand utilité pour la comparer avec une autre date sauf à la retransformer en nombre !
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

OUTAN30
Messages : 3
Enregistré le : mer. 8 déc. 2021 15:11

Re: fichiers modifiés après une date

Message par OUTAN30 » mer. 8 déc. 2021 23:54

Alors oui je voyais le truc en python en effet premièrement pour pouvoir contrôler les gpio du RP peut-être est il possible de le faire aussi en bash, et deuxièmement pour toucher un peu du code que je pourrais mettre en valeur dans un milieu pro, disons que j’ai deja eu a ouvrir du python dans mon ancien taff, pas du bash. Donc pour répondre non le python n’est pas du tout obligatoire.

Sinon pas besoin que cela soit lisible par un humain, j’ai juste une idée de faire un genre de nas pour une imprimante 3d résine, donc pas d’octoprint, dans l’idée j’ai une cles usb que je commute entre mon RP et l’imprimante avec un switch HW.
Dans les grandes lignes mon code devrait faire ca :

-Detecter power on mars
-Trouver dernier fichier sur clé partagée
-Lister fichier plus récent dans dossier source
-Copier fichiers sur clé partagée
-(Supprimer les plus anciens)
-(Démonter clé usb du RP)
-Switch USB vers mars ( composants HW)
-Detecter power off mars
-Switch usb vers RP
Et on recommence

Oui je sais il faut quand meme aller a l’imprimante a un moment mais j’ai 3 étages entre le PC et l’imprimante et ca j’éviterai un aller retour pour aller chercher la clé a la cave….
Merci

A+


Envoyé de mon iPhone en utilisant Tapatalk

dyox
Raspinaute
Messages : 969
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: fichiers modifiés après une date

Message par dyox » jeu. 9 déc. 2021 07:04

Bonjour,

Pour comparer des fichiers, c'est le boulot de rsync ça. Mais ce sera du bash.

piper
Raspinaute
Messages : 641
Enregistré le : sam. 5 juin 2021 18:57

Re: fichiers modifiés après une date

Message par piper » jeu. 9 déc. 2021 08:04

Puisque tu n'as pas besoin que la date soit lisible par un humain
Alors tu n'as aucun soucis à utiliser os.path.getmtime si tu veux :
La règle est simple, plus la valeur retournée par os.path.getmtime est grande et plus la date/heure est grande.
Autrement dit, le fichier toto.txt a été mis à jour pour la dernière fois avant le fichier titi.txt si :
os.path.getmtime("toto.txt") < os.path.getmtime("titi.txt")
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

OUTAN30
Messages : 3
Enregistré le : mer. 8 déc. 2021 15:11

Re: fichiers modifiés après une date

Message par OUTAN30 » ven. 10 déc. 2021 14:11

Salut,
je pense être arriver un un truc fonctionnel pour mon tri de fichiers

une fois que j'ai compris qu'il fallait le faire dans une boucle cela a été beaucoup plus clair, Pluto que de comparer une liste avec un unique ficher...

bref Merci beaucoup
A+

Répondre

Retourner vers « Python »