Ben Stdin (tamponsuz) okur ve çıkışı (tamponsuz) bazı önemsiz karakter bazında kömürün dönüşümünü yapıyor yazar bir program yazmak istiyorum. Örnek uğruna diyelim ki tüm chars x
stdin.Python'da unix filtresi nasıl yazılır?
cevap
Sana bu bağlamda tamponlu ile ne demek tam olarak bilmiyorum, ama ne soran yapmak oldukça basit ...
so_gen.py (biz izleyebilirsiniz sabit akım yaratılması) :
import time
import sys
while True:
for char in 'abcdefx':
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(0.1)
so_filter.py (sormak yapıyor):
import sys
while True:
char = sys.stdin.read(1)
if not char:
break
if char != 'x':
sys.stdout.write(char)
sys.stdout.flush()
ne yaptığını görmek için python so_gen.py | python so_filter.py
çalıştırmayı deneyin.
sys.stdin
'dan okuyun ve sys.stdout
'a yazın (veya print
kullanın). Sizin örnek programı:
import sys
for line in sys.stdin:
print line.replace("x", ""),
Orada tamponsuz stdin'i yapmak için standart bir yol değildir ve söz konusu istemiyorum. İşletim sistemi arabelleğe alsın.
"Çözülmemiş" demişti ama gerçekten önemli olduğundan emin değilim. –
Cevabımı siz yorumladıktan sonra düzenledim. yazma 'değilse karakter için –
Sen Perl elmas operatörü gibi girişler olur işlemek sağlayan fileinput
class kullanabilirsiniz. Dokümanlar:
import fileinput
for line in fileinput.input():
process(line)
nerede süreç print line.replace('x','')
gibi bir şey yok.
Sen stdout'u unbuffer nasıl için this StackOverflow question takip edebilirsiniz. Ya da sadece her print
sonra sys.stdout.flush()
çağırabilir.
Ah! Bu yaptığım tüm ekstra çalışmaları yapar çünkü Perl'i boşa kaçırdım! Python standart kütüphanesini çok yakından incelemem gerek. –
tüm okur ve tamponsuz yazar olmak için piton tercüman -u anahtarını kullanın. Perl'de $| = true;
ayarına benzer. Ardından, yaptığınız gibi ilerleyin, onu değiştirip sonra yazdırın. sys.stdout.flush() gerekli değil.
#!/path/to/python -u
import sys
for line in sys.stdin:
process_line(line)
Burada çalışmıyor ... –
- 1. Nümerik dizi veya pandalarla pythonda rutini sadeleştirme
- 2. nasıl unix
- 3. Python'da unix zaman damgasına saat ekleme
- 4. Unix
- 5. Unix
- 6. Unix
- 7. unix
- 8. unix
- 9. LowPass Filtresi nasıl uygulanır?
- 10. kogrid filtresi çalışmıyor - plunker ile
- 11. Dizi filtresi
- 12. Unix c
- 13. UNIX: dizi
- 14. Perl'de Unix grep'i nasıl uygularım?
- 15. PCap unix tamponlaması nasıl çalışır?
- 16. C işlevi nasıl yazılır ve perl'den nasıl yazılır
- 17. Nasıl yazılır. Net obfuscator
- 18. openssl engine nasıl yazılır
- 19. Xcode eklentileri nasıl yazılır?
- 20. OCaml Dosyaya nasıl yazılır?
- 21. Nasıl güzel yazılır?
- 22. Şablon sınıfı nasıl yazılır?
- 23. İpucu nasıl yazılır
- 24. Sanal makine nasıl yazılır
- 25. Html'de denklemler nasıl yazılır?
- 26. Akışları kullanarak nasıl yazılır?
- 27. C++ 'da nasıl yazılır?
- 28. Mysql verileri nasıl yazılır?
- 29. İşaretçiyi arkada nasıl yazılır?
- 30. Kovan nasıl yazılır UDFs
kazanan: – flybywire
@flybywire break': Verdiği yanıt gerekli, başka hiçbir cevap yaptılar ... –