Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

python touch

6 réponses
Avatar
Franssoa
Bonjour,

Je n'ai pas reussi à trouver l'équivalent python de la commande "touch"
qui permet de changer l'heure de création d'un fichier. Est-ce possible,
à part os.popen("touch ...") bien évidemment...

Franssoa

6 réponses

Avatar
Thomas Samson
Franssoa writes:

Bonjour,

Je n'ai pas reussi à trouver l'équivalent python de la commande
"touch" qui permet de changer l'heure de création d'un fichier. Est-ce
possible, à part os.popen("touch ...") bien évidemment...


os.utime:
utime(...)
utime(path, (atime, utime))
utime(path, None)

Set the access and modified time of the file to the given
values. If the
second form is used, set the access and modified times to the
current time.


mais bon, en general, 'tricher' sur le temps des fichiers est une
mauvaise solution.

--
Thomas Samson
Beautiful is better than ugly.

Avatar
Franssoa
Franssoa writes:
Je n'ai pas reussi à trouver l'équivalent python de la commande
"touch"


os.utime:
hum... comment ai-je pu passer à côté ?



mais bon, en general, 'tricher' sur le temps des fichiers est une
mauvaise solution.
Certes. Je veux m'en servir pour synchroniser de façon simple des

vignettes de photos avec leur original. Si l'original et la vignette
n'ont pas la même date, c'est que l'original a changé et la vignette est
à refaire.

Franssoa


Avatar
Thomas Samson
Franssoa writes:

Franssoa writes:
Je n'ai pas reussi à trouver l'équivalent python de la commande
"touch"


os.utime:
hum... comment ai-je pu passer à côté ?



mais bon, en general, 'tricher' sur le temps des fichiers est une
mauvaise solution.
Certes. Je veux m'en servir pour synchroniser de façon simple des

vignettes de photos avec leur original. Si l'original et la vignette
n'ont pas la même date, c'est que l'original a changé et la vignette
est à refaire.


Je ne vois pas vraiment l'interet de la modification dans ce cas...
Il suffit de comparer la date de modification de la vignette et de
l'original, avec quelque chose comme:

if os.path.getmtime('original') > os.path.getmtime('vignette'):
.... refaire la vignette ...

--
Thomas Samson
[A computer is] like an Old Testament god, with a lot of rules
and no mercy.
-- Joseph Campbell



Avatar
Franssoa
Franssoa writes:
Je veux m'en servir pour synchroniser de façon simple des
vignettes de photos avec leur original. Si l'original et la vignette
n'ont pas la même date, c'est que l'original a changé et la vignette
est à refaire.


Je ne vois pas vraiment l'interet de la modification dans ce cas...
Il suffit de comparer la date de modification de la vignette et de
l'original, avec quelque chose comme:

if os.path.getmtime('original') > os.path.getmtime('vignette'):
.... refaire la vignette ...

C'est effectivement le plus simple et c'est même ce que je faisait

jusqu'à il y a peu.
Mais (car il y en a toujours un) je récupère des fichiers (original)
dont je ne peux modifier la date et qui ont des dates fantaisistes,
comme par exemple le 02/05/2020. Donc si je compare cette date à la date
de fabrication de la vignette, forcément elle sera toujours supérieure
(du moins jusqu'en 2020) et la vignette sera recréée à chaque fois. Donc
je met la vignette au 02/05/2020, et comme ça plus de problème.

Franssoa


Avatar
Thomas Samson
Franssoa writes:

Franssoa writes:
Je veux m'en servir pour synchroniser de façon simple des
vignettes de photos avec leur original. Si l'original et la vignette
n'ont pas la même date, c'est que l'original a changé et la vignette
est à refaire.
Je ne vois pas vraiment l'interet de la modification dans ce cas...

Il suffit de comparer la date de modification de la vignette et de
l'original, avec quelque chose comme:
if os.path.getmtime('original') > os.path.getmtime('vignette'):
.... refaire la vignette ...

C'est effectivement le plus simple et c'est même ce que je faisait

jusqu'à il y a peu.
Mais (car il y en a toujours un) je récupère des fichiers (original)
dont je ne peux modifier la date et qui ont des dates fantaisistes,
comme par exemple le 02/05/2020. Donc si je compare cette date à la
date de fabrication de la vignette, forcément elle sera toujours
supérieure (du moins jusqu'en 2020) et la vignette sera recréée à
chaque fois. Donc je met la vignette au 02/05/2020, et comme ça plus
de problème.



Oui, dans ce cas, je comprends mieux...
attention quand meme, suivant le systeme, une date qui se situe trop
'dans le futur' peu ne pas fonctionner, et si les dates de tes originaux
sont fantaisistes, l'original peut potentiellement changer sans que tu
le remarque...

J'utiliserais plutot une methode inverse, je mettrais l'original a une
date valide (comme le moment ou tu l'a recupere).

Tu es sur de ne pas pouvoir modifier la date des originaux ?
Parce que les dates fantaisistes, c'est mal :)
(surtout a une epoque ou se synchroniser sur un serveur de temps est
vraiment simple)

--
Thomas Samson
"If truth is beauty, how come no one has their hair done in the
library?"
-- Lily Tomlin



Avatar
Franssoa
J'utiliserais plutot une methode inverse, je mettrais l'original a une
date valide (comme le moment ou tu l'a recupere).
Ben oui, ce serait nettement mieux


Tu es sur de ne pas pouvoir modifier la date des originaux ?
Parce que les dates fantaisistes, c'est mal :)
Hélas.

Je créé les vignettes provenant de plusieurs ordinateurs qui sont
"backupés" sur mon serveur. J'en maîtrise une partie, mais pas tous :-(
Et bien sur les dates zabies ne sont pas sur les miens (ben tien).

Merci de ton aide
Franssoa