Comment exécuter la commande awk par code python

J’ai un dataset que je veux traiter. J’essayais d’exécuter un code python pour exécuter la commande “awk” sous Linux. Hoverver peu importe comment j’essaie différents arguments ou fonctions, tout n’a pas fonctionné.

Il y a deux manières différentes d’essayer, mais elles n’ont pas toutes fonctionné. Je ne sais pas pourquoi

1)

#!/usr/bin/env python import subprocess as sp cmd = "awk, '{print $2 '\t' $4 '\t' $5 '\t' $6}', B3LYPD.txt" args = cmd.split(',') p = sp.Popen(args, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE ) 

2)

 #!/usr/bin/env python import subprocess as sp cmd = "awk, '{print $2 '\t' $4 '\t' $5 '\t' $6}'" args = cmd.split(',') p = sp.Popen(args, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE ) c = p.communicate('B3LYPD.txt') print c 

Bien que je sois d’accord sur le fait qu’il est préférable de le faire en Python, plutôt que d’invoquer awk. Si vous avez vraiment besoin de le faire, alors l’erreur réelle est avec votre awk.

 #!/usr/bin/env python import subprocess as sp args = ["awk", r'{OFS="\t"; print $2,$4,$5,$6}', "B3LYPD.txt"] p = sp.Popen(args, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE ) print(p.stdout.readline()) # will give you the first line of the awk output 

Edit: Correction du devis manquant.