Ben özyinelemeli bir dize aramak çalışıyorum grep
ama bunu elde:
$ grep -r "stuff" *
grep: unrecognized option '---corporate-discount.csv'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Bash'in -
argüman olarak başlayan dosyaları geçirmesini nasıl önleyebilirim ?
grep
seçenek olmadığını söylemek .
subprocess.Popen(['grep', '-r', '-e' 'stuff', '--corporate-discount.csv'])
Python'da, hiçbir yerde bash ile elde edersiniz .
*
komutlarda kullanılmasından kaynaklanabilecek güvenlik sorunları hakkında . Bunların TÜMÜ kullanılarak ./*
yerine önlenebilir .
--
seçenek sonu sigil olarak kullanmak da oldukça makul; POSIX yardımcı programı söz dizimi yönergelerine uyulmasını gerektirir; 10 numaralı kılavuza bakın. (Elbette, tüm programlar POSIX yönergelerine uymaz, ancak cevap rahatsız edici programların yazarlarını dizmek ve / veya bunları sektörden çıkarmaktır).