Come sfuggire alle chiamate os.system()?

| |

Quando si utilizza os.system() è spesso necessario sfuggire a nomi di file e altri argomenti passati come parametri ai comandi. Come posso farlo? Preferibilmente qualcosa che funzioni su più sistemi operativi/shell ma in particolare per bash.

Sto facendo quanto segue, ma sono sicuro che ci deve essere una funzione di libreria per questo, o almeno un'opzione più elegante/robusta/efficiente:

def sh_escape(s): return s.replace("(";"(").replace(")";")").replace(" ";" ") os.system("cat %s | grep qualcosa | ordina > %s" % (sh_escape(in_filename), sh_escape(out_filename))) 

Modifica: ho accettato la semplice risposta di usando le virgolette, non so perché non ci ho pensato; immagino perché provengo da Windows dove " e " si comportano in modo leggermente diverso.

Per quanto riguarda la sicurezza, capisco la preoccupazione, ma, in in questo caso, sono interessato a una soluzione rapida e semplice fornita da os.system() e l'origine delle stringhe non è generata dall'utente o non è l est inserito da un utente fidato (io).

Come sfuggire alle chiamate os.system()? sin: Questions

Come sfuggire alle chiamate os.system()? StackOverflow: Questions

Shop

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method