Posiadałem zestaw danych, którymi chcę się zająć. Próbowałem uruchomić kod Pythona, aby wykonać polecenie "awk" w systemie Linux. bez względu na to, jak próbuję różnych argumentów lub funkcji, to wszystko nie działało.Jak wykonać polecenie awk za pomocą kodu Pythona
Są dwa różne sposoby, w które próbowałem, ale wszystkie nie działały. Nie wiem dlaczego
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
Użyj 'shlex.split' zamiast' str.split'. –
Jeśli już programujesz w Pythonie, czy na pewno chcesz wywołać 'awk'? Python prawdopodobnie może zrobić wszystko, czego potrzebujesz z 'awk' po prostu dobrze. –
Jeśli potrzebujesz listy ciągów, zamiast używać 'c =" tego, tego, innego "; args = cmd.split (',') ', możesz po prostu użyć' args = ["this", "that", "other"] 'i pominąć polecenie split. –