Re: python3 et commande bash

トップ ページ

このメッセージに返信
著者: edmond dobryk
日付:  
To: guilde
題目: Re: python3 et commande bash
Bonjour

Ajout peut-être ...,après MODEL,de MOUNTPOINT ...

Bien à vous

Le 29/07/2018 à 03:36, anne.guilde@??? a écrit :
> bonjour,
>
> J'ai essayé par mal de choses pour pouvoir lancer la commande bash
> suivante sous python 3 :
> lsblk --list -pn -o NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL | awk '$3 ~
> "usb" {print $1" "$5$6$7}'
>
> le résultat sous bash
> >>> cde1 = "lsblk --list -pn -o NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL |
> awk '$3 ~ \"usb\" {print $1\" \"$5$6$7}'"
> # lsblk --list -pn -o NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL | awk '$3 ~
> "usb" {print $1" "$5$6$7}'
> /dev/sdc HGSTHTS721010A9E630
> /dev/sr0 hpDVDRAMGT30L
>
> Avec python 3 la seule commande qui a fonctionné
> >>> import os
> >>> cde1 = "lsblk --list -pn -o NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL |
> awk '$3 ~ \"usb\" {print $1\" \"$5$6$7}'"
> >>> os.system(cde1)
> /dev/sdc HGSTHTS721010A9E630
> /dev/sr0 hpDVDRAMGT30L
> 0
> >>> resutat = os.system(cde1)
> /dev/sdc HGSTHTS721010A9E630
> /dev/sr0 hpDVDRAMGT30L
> >>>
>
> J'ai mis le résultat dans un fichier
>
> >>> cde3 = "lsblk --list -pn -o NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL |
> awk '$3 ~ \"usb\" {print $1\" \"$5$6$7}' > /tmp/result_lsblk"
> >>> resutat = os.system(cde3)
>
> # cat /tmp/result_lsblk
> /dev/sdc HGSTHTS721010A9E630
> /dev/sr0 hpDVDRAMGT30L
>
> J'aurais aimé mettre cela dans un tableau mais je n'ai pas encore
> regardé si cela existe avec python 3, les tableaux.
> les /dev/s* dans un tableau et le reste de chaque ligne dans un autre
> tableau.
>
> ---------------------
>
> Les commandes que je n'ai pas réussi à faire fonctionner
>
> >>> from subprocess import call
> >>> cde2 = ["lsblk", "--list", "-pn", "-o",
> "NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL", "|", "awk", "'$3", "~",
> "\"usb\"", "{print", "$1\" " "\"$5$6$7}'"]
> >>> call(cde2)
> lsblk: | : n'est pas un périphérique bloc
> lsblk: awk : n'est pas un périphérique bloc
> lsblk: '$3 : n'est pas un périphérique bloc
> lsblk: ~ : n'est pas un périphérique bloc
> lsblk: "usb" : n'est pas un périphérique bloc
> lsblk: {print : n'est pas un périphérique bloc
> lsblk: $1" "$5$6$7}' : n'est pas un périphérique bloc
> 32
>
>
> >>> cde2 = ["lsblk", "--list", "-pn", "-o",
> "NAME,TYPE,TRAN,SERIAL,VENDOR,MODEL", "\|", "awk", "'$3", "~",
> "\"usb\"", "{print", "$1\" " "\"$5$6$7}'"]
> >>> call(cde2)
> lsblk: \| : n'est pas un périphérique bloc
> lsblk: awk : n'est pas un périphérique bloc
> lsblk: '$3 : n'est pas un périphérique bloc
> lsblk: ~ : n'est pas un périphérique bloc
> lsblk: "usb" : n'est pas un périphérique bloc
> lsblk: {print : n'est pas un périphérique bloc
> lsblk: $1" "$5$6$7}' : n'est pas un périphérique bloc
> 32
> >>>
>
>
> >>> subprocess.Popen(cde2)
> <subprocess.Popen object at 0x7f2d5c32d160>
> >>> lsblk: \| : n'est pas un périphérique bloc
> lsblk: awk : n'est pas un périphérique bloc
> lsblk: '$3 : n'est pas un périphérique bloc
> lsblk: ~ : n'est pas un périphérique bloc
> lsblk: "usb" : n'est pas un périphérique bloc
> lsblk: {print : n'est pas un périphérique bloc
> lsblk: $1" "$5$6$7}' : n'est pas un périphérique bloc
>
> Il y a certainement d'autres solutions...
>
> Merci pour vos commentaires
> Anne
>
>