Maison > Questions et réponses > le corps du texte
Le script original a été maintenu par un senior. C'était un script shell et c'était trop difficile à comprendre. Le patron m'a demandé de le réécrire en python. La fonction est la suivante, qui consiste à obtenir le champ d'horodatage dans le svn. log
]
J'ai suivi les instructions de Python. La façon de l'écrire est de regrouper les commandes ensemble et d'appeler popen pour les exécuter.
Mais une erreur a été signalée lors de l'exécution, comme indiqué ci-dessous :
Ensuite j'ai mesuré la partie avant de cmd, qui est
Le résultat est :
On peut voir que le résultat est correct, donc le problème de jugement se produit dans la partie sed. S'il vous plaît, aidez-moi avec vos seniors.
我想大声告诉你2017-06-28 09:25:05
Est-ce que cela peut fonctionner si vous copiez la commande directement sur la ligne de commande ? Si cela fonctionne, cela signifie que vous avez fait une erreur dans l'organisation de la chaîne. Par exemple, vous avez manqué les guillemets doubles. Par exemple, "%F" et '"%F"' en python sont différents, et '2' et '\. 2' sont différents
怪我咯2017-06-28 09:25:05
Quand j'ai commencé à travailler, j'étais trop collé aux idées des autres, j'ai pensé à utiliser Python pour implémenter des fonctions autant que possible. Utilisez simplement la fonction de remplacement de Python pour résoudre le problème
过去多啦不再A梦2017-06-28 09:25:05
Pas besoinsed/grep
...
# coding: utf8
import re
from time import strftime, strptime
from subprocess import Popen, PIPE
cmd = 'svn log' # 不需要sed
result = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)
stdout, stderr = result.communicate()
for _ in re.findall(r'(?<=date>)([^<.]+)\.', stdout):
print(strftime("%F %T", strptime(_, "%Y-%m-%dT%H:%M:%S")))