linux - Comment écrire la commande shell suivante en python?
漂亮男人
漂亮男人 2017-06-28 09:23:05
0
3
1139

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.

漂亮男人
漂亮男人

répondre à tous(3)
我想大声告诉你

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

刘奇

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梦

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")))
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal